【发布时间】:2020-03-09 05:00:58
【问题描述】:
我的第一个查询返回 is_root = true 的 thread_id(s)
SELECT thread_id
FROM messages
WHERE recipient_id = '331e1bce-2f71-4187-8ce2-edcc615de55b`
AND is_root = true
如何在每个返回的 thread_id 上使用 JOIN 来获取最新消息?
我的第二个查询得到最新消息
SELECT * FROM messages WHERE thread_id = '1b290bac-e694-40c4-86b6-c5b6e09ae8c3'
ORDER BY date_posted DESC LIMIT 1
我尝试使用子查询,但它给了我这个错误:
WITH rootcomments as(
SELECT thread_id
FROM messages
WHERE recipient_id = '331e1bce-2f71-4187-8ce2-edcc615de55b'
AND is_root = true
), latestmessages as(
SELECT * FROM messages WHERE thread_id = rootcomments.thread_id
ORDER BY date_posted DESC LIMIT 1
)SELECT * FROM latestmessages
missing FROM-clause entry for table "rootcomments"
我怎样才能使用连接来做到这一点?
编辑1: _______________________________________________________________
应该返回 message_id 3,因为它具有最高值的时间戳
但它只返回 2
尝试将 DESC 更改为 ASC,但没有成功,哈哈
【问题讨论】:
标签: sql postgresql