首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL Distinct / Group by,这让我大吃一惊

MySQL Distinct / Group by,这让我大吃一惊
EN

Stack Overflow用户
提问于 2017-08-30 20:37:39
回答 2查看 69关注 0票数 0

因此,我要做的是检索一个列表,其中包含用户在其消息传递窗口中看到的所有“初始”消息

这是表结构

代码语言:javascript
复制
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               | 

到目前为止,我尝试了以下查询:

代码语言:javascript
复制
select * from messages where sender = 'bTP5n'
union select * from messages where receiver = 'bTP5n'
group by conversation_id

并且我仍然得到具有相同thread_id的两行

下面的查询也是如此:

代码语言:javascript
复制
select * from messages where sender = 'bTP5n'
union select * from messages where receiver = 'bTP5n'
group by conversation_id order by date desc

它们都没有返回我想要的东西,都是唯一的thread_id,其中发送者或接收者等于"bTP5n“

免责声明:此问题使用了虚拟数据

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-08-30 20:41:29

如果你在第二个联合查询中使用group by,那么它只适用于第二个查询,如果你想在所有结果中应用,那么你必须在所有结果之外编写group by。尝试下面的查询:

代码语言:javascript
复制
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
票数 0
EN

Stack Overflow用户

发布于 2017-08-30 20:45:02

一旦对原始数据使用了统计计算函数,就需要GROUP BY子句。在您的示例中,这不是您的情况

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45960651

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档