[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Group By + Order By
Helram
Здравствуйте, существует таблица писем, данная таблица ниже другая (убрал значения которые не нужны, текст письма и так далее)

SQL Запрос:
CREATE TABLE IF NOT EXISTS `mail` (
`id` bigint(20) NOT NULL,
`us` int(11) NOT NULL DEFAULT '0',
`us2` int(11) NOT NULL DEFAULT '0'
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;

INSERT INTO `mail` (`id`, `us`, `us2`) VALUES
(1, 44, 1),
(
2, 22, 1),
(
3, 44, 1),
(
4, 33, 1),
(
5, 33, 1);

ALTER TABLE `mail`
ADD PRIMARY KEY (`id`);

ALTER TABLE `mail`
MODIFY `id` bigint(20) NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=5;

Мне нужно получить двух последних отправителей к us2=1
Запрос в бд:

mysql_query("SELECT * FROM `mail` WHERE `us2`=1 GROUP BY `us` ORDER BY `id` DESC LIMIT 2");

Он выводит две строки с id 4 и 2... вообще не правильно - должен выводить id 5 и 3.
То есть по моей логике я думал запрос выполнится так:
Сортировка с конца "ORDER BY `id` DESC" (последний id 5, в нем значение us 33, его нет показываем).
Далее id 4, но в нем us который уже был (33) - запись отбросили
Далее id 3, us = 44, его нет показываем
LIMIT 2 выполнили завершили.

Можно ли как то заставить работать GROUP BY таким способом как я описал?



Helram
Всем спасибо, нашел ответ в гугле
https://coderoad.ru/10030787/%D0%98%D1%81%D...%81%D1%82%D0%B5
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.