【发布时间】:2021-02-16 10:31:49
【问题描述】:
channels表
id | name
------------
1 | ABC
2 | XYZ
3 | MNO
4 | ASD
user_channels表
user_id | channel_id
----------------------
555 | 1
666 | 1
777 | 1
555 | 2
888 | 2
999 | 3
555 | 3
user_chats表
id | created_at | channel_id | content
---------------------------------------
2 | time 1 | 1 | Hello
3 | time 2 | 1 | Hi
4 | time 3 | 2 | Good day
5 | time 4 | 2 | Morning
我在 postgres SQL 中有这 3 个表,
我想编写一个 sql 查询以通过 user_id 获取 user_channels,它只是来自 user_chats 表的最新消息 (time 1 is oldest message)。我该怎么做?
例如,对于 user_id = 555,查询应该返回
channel_id | content | created_at
---------------------------------------
1 | Hi | time 2
2 | Morning | time 4
3 | Null | Null
【问题讨论】:
标签: sql postgresql sql-order-by inner-join greatest-n-per-group