Народ, помогите плиз с запросом, таблица имеет следующую структуру id | uid | user | message | date | comment 1 233 boko zzTestzzZ 23.12.01 Hello world Ну столбце message сообщения дублируются, надо вывести список сообщение чтобы не было дублей с сортировкой по дате, знаю что надо использовать DISTINCT, вот только не знаю как связать тут 2 запроса. В общем помогите с проблемкой такой небольшой )
Конструкция с использованием DISTINCT возвращает клиенту уникальные строки. Уникальность строки определяется значениями всех выбранных полей: [sql] SELECT DISTINCT * FROM message [/sql] Т.к. поле id у нас уникально для каждой записи, то мы получим все строки! [sql] SELECT DISTINCT uid, message FROM message [/sql] В этом случае мы получим уникальные uid и message Если в базе будет две записи с одинаковыми полями uid и message сервер вернет нам одну строку [sql] SELECT DISTINCT message FROM message [/sql] Получение уникальных сообщений.
Если делать так: [sql] SELECT DISTINCT message, user FROM message [/sql] то все ок, выводятся сообщения то что нужно, но мне надо еще дату прицепить, чтобы потом это вывести в список... если к селекту еще добавляешь колонку date, запрос работает, но уникальности нету... Надо просто еще запрос дописать и все, помогите плиз.
[sql]SELECT id, uid, user, message, `date`, comment FROM `table` group by user, message ORDER BY `date`[/sql]
alexei Думаю что группировка варианта, предложенный AlexGousev, подойдет больше чем простой DISTINCT. Проблема в том что можно получить даты не всех сообщений, а только уникальных. В твоем случае может подойдет применение "групповых функций" [sql] SELECT message, user, max(`date`) FROM message GROUP BY message, user ORDER BY `date`[/sql] хотя сомневаюсь, это ли тебе нужно?
это как раз что мне было нужно. большое спасибо за помощь. еще просьба ткните моськой в хорошие маны или книги по mysql, чтобы не сильно замудренные) и с примерами, желательно чтобы па русске было )))) заранее спасибо.