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 таким способом как я описал?