我有两个名为chatmaster和chatmessages的表,我试图左键联接这两个表,以便从master获取所有数据,并为每个聊天获取最新消息。我使用这个查询连接两个表
SELECT c.id, c.p1, c.p2, m.toP, m.message, m.createdOn FROM chatMaster c
left join chatMessages m on c.id = m.id group by m.id ;
这个查询只为chatmaster中的每个条目选择一行,但是它为每个条目选择第一条消息,比如,
1, 2018-11-24 00:40:08, HI!, 99e22056-ee7f-11e8-bc28-8acac6f59ef9, 1001
2, 2018-11-24 00:40:21, HI! There, 99e22056-ee7f-11e8-bc28-8acac6f59ef9, 1
3, 2018-11-24 01:33:12, HI!, e3345a17-ee7f-11e8-bc28-8acac6f59ef9, 2
这是 select * from chatMessages
,有两个聊天id条目 99e22056-ee7f-11e8-bc28-8acac6f59ef9
我要的是送上的那个 2018-11-24 00:40:21
但是我的连接查询的结果是
99e22056-ee7f-11e8-bc28-8acac6f59ef9, 1001, 1, 1001, HI!, 2018-11-24 00:40:08
e3345a17-ee7f-11e8-bc28-8acac6f59ef9, 2, 10001, 2, HI!, 2018-11-24 01:33:12
它正在选择第一条消息。如何选择最新消息?我应该做什么更改才能从chatmessages获取最新消息而不是第一条消息。请询问您是否需要更多详细信息
1条答案
按热度按时间t5fffqht1#
在派生表中,可以获得
createdOn
(最新)createdOn
)每一位聊天高手id
. 然后可以将此结果集联接到主表,以仅获取对应于最新结果的行createdOn
.