这是我的疑问:
SELECT id
FROM users
WHERE (id IN (
SELECT user_id
FROM messages
WHERE recipient_id='$my_user_id' ORDER BY time DESC)
OR id IN (
SELECT recipient_id
FROM messages
WHERE user_id='$my_user_id' ORDER BY time DESC))
我收到来自/已发送消息的消息的人员列表显示,但未正确排序。我希望新邮件收件人位于顶部,旧邮件收件人位于底部。我该怎么做呢?
答案 0 :(得分:1)
SELECT u.id
FROM users u
JOIN messages m on m.recipient_id = u.id
or m.user_id = u.id
WHERE u.id = '$my_user_id'
ORDER BY m.time DESC
答案 1 :(得分:0)
你正在整理错误的东西。对于IN
,订单并不重要。您想要订购的是结果。所以你想要做的是JOIN
your users
table和你的messages
表,然后将ORDER BY
追加到主查询的末尾(并将其从两个子查询中删除,因为它&# 39;那里不需要。)