因此,我要做的是检索一个列表,其中包含用户在其消息传递窗口中看到的所有“初始”消息
这是表结构
thread_id | sender | receiver | message | date | sender_deleted | sender_received | read
xRdaQ | bTP5n | lCBNA | hello! | date | 0 | 0 |
xRdaQ | lCBNA | bTP5n | hey! | date | 0 | 0 |
1T4xR | bTP5n | An03R | hhi | date | 0 | 0 | 到目前为止,我尝试了以下查询:
select * from messages where sender = 'bTP5n'
union select * from messages where receiver = 'bTP5n'
group by conversation_id并且我仍然得到具有相同thread_id的两行
下面的查询也是如此:
select * from messages where sender = 'bTP5n'
union select * from messages where receiver = 'bTP5n'
group by conversation_id order by date desc它们都没有返回我想要的东西,都是唯一的thread_id,其中发送者或接收者等于"bTP5n“
免责声明:此问题使用了虚拟数据
发布于 2017-08-30 20:41:29
如果你在第二个联合查询中使用group by,那么它只适用于第二个查询,如果你想在所有结果中应用,那么你必须在所有结果之外编写group by。尝试下面的查询:
select * from
(select * from messages where sender = 'bTP5n'
union
select * from messages where receiver = 'bTP5n'
)
as a group by conversation_id order by date desc发布于 2017-08-30 20:45:02
一旦对原始数据使用了统计计算函数,就需要GROUP BY子句。在您的示例中,这不是您的情况
https://stackoverflow.com/questions/45960651
复制相似问题