[英]How to make this mysql query display a DISTINCT row?
SELECT DISTINCT message_group.group_id, messages.*
FROM messages
LEFT JOIN message_group ON message_group.group_id = messages.group_id
WHERE message_group.username = 'admin'
OR message_group.recipients = 'admin'
ORDER BY messages.id DESC
Here is how it displays the data, even though I specified DISTINCT message_group.group_id
即使我指定了
DISTINCT message_group.group_id
,也是如此显示数据的方式
Why does it do this?
为什么这样做呢? How can I have it display only one
group id
? 如何显示仅一个
group id
?
More reference: https://stackoverflow.com/questions/36167801/how-to-order-message-groups-messages-just-like-imessage 更多参考: https : //stackoverflow.com/questions/36167801/how-to-order-message-groups-messages-just-like-imessage
Try this: 尝试这个:
SELECT message_group.group_id, messages.*
FROM messages INNER JOIN
(SELECT
MAX(`timestamp`) AS latest,
group_id
FROM messages
GROUP BY group_id) m2
ON messages.group_id = m2.group_id AND messages.`timestamp` = m2.`timestamp`
LEFT JOIN message_group ON message_group.group_id = messages.group_id
WHERE message_group.username = 'admin'
OR message_group.recipients = 'admin'
ORDER BY messages.id DESC
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.