【发布时间】:2018-04-23 03:39:32
【问题描述】:
我有一个 SQL 查询,它从我的用户表中选择已向我选择的用户发送消息或从我选择的用户接收消息的用户(我的消息表中的发件人 ID 或收件人 ID)。
查询如下:
SELECT *
FROM users
WHERE (ID IN (SELECT DISTINCT(senderID)
FROM messages
WHERE recipientID = $userID)
OR ID IN (SELECT DISTINCT(recipientID)
FROM messages
WHERE senderID = $userID))
鉴于sentAt 列是消息的时间戳,我如何按照用户发送最新消息的顺序来排序返回。我试图将ORDER BY sentAt DESC 附加到子查询中,但它没有返回预期的结果。
任何帮助将不胜感激。
【问题讨论】:
-
这适用于哪个 RDBMS?请添加标签以指定您使用的是
mysql、postgresql、sql-server、oracle还是db2- 或其他完全不同的东西。 -
请提供样本数据和期望的结果。
-
抱歉,我编辑了标签以反映它是 mysql。