ponich
@ponich
php,mysql,js

Использование DISTINCT в MySQL только в нужной колонке?

Добрый день.
Прошу помощи объяснить как правильно делать запрос в базу MySQL с параметром DISTINCT.
Дело в том что мне с таблицы не нужны все столбцы, только заданные SELECT"ом. При этом DISTINCT работает не корректно.

SQL:
SELECT `user`,`message`,`date`,`read`,`attach`,`name`
FROM user_dialog d
JOIN user u
ON u.id = d.why
WHERE (d.user = 1)

Собственно вопрос: как можно изменить запрос что бы результат был с уникальным полем user_dialog.user?
  • Вопрос задан
  • 3656 просмотров
Пригласить эксперта
Ответы на вопрос 2
PaulZi
@PaulZi
Вам нужно, как я понимаю, сгруппировать а не DISTINCT использовать:
SELECT `user`,`message`,`date`,`read`,`attach`,`name`
FROM user_dialog d
JOIN user u
ON u.id = d.why
WHERE (d.user = 1) 
GROUP BY `user`
Ответ написан
Если представить таблицу диалога в виде: dialog(sender_id, recipient_id, message, date ...), то запрос будет примерно таким:
SELECT DISTINCT IF(sender_id > recipient_id, sender_id, recipient_id) id1, IF(sender_id < recipient_id, sender_id, recipient_id) id2 FROM dialog

Этот запрос выведет все уникальные пары собеседников.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы