gpt4 book ai didi

mySQL - 以任意顺序选择 2 列的不同组合

转载 作者:行者123 更新时间:2023-11-29 02:19:45 24 4
gpt4 key购买 nike

我有一个表,其中包含两个用户之间的消息。我需要找到所有不同的用户组合,无论他们是发送者还是接收者。

ID    sender     receiver   message
1 'bob' 'bill' 'message 1'
2 'bill' 'bob' 'message 2'
3 'mike' 'bob' 'message 1'
4 'bob' 'bill' 'message 3'
5 'bob' 'mike' 'message 2'

我需要查询返回这个:

ID    sender     receiver   message
1 'bob' 'bill' 'message 1'
3 'mike' 'bob' 'message 1'

注意 ID=2 是如何被跳过的,因为已经找到了 Bob 和 Bill 的组合(与 ID=4 相同),ID=5 是如何被跳过的,因为 Bob 和 Mike 的组合已经被找到了。

最佳答案

在子查询中提取您想要的消息 ID,然后将其加入到消息中:

select a.*
from message a
join (
select if(sender > receiver, sender, receiver) person1, if(sender > receiver, receiver, sender) person2, min(ID) ID
from messages
group by person1, person2) b on a.ID = b.ID

关于mySQL - 以任意顺序选择 2 列的不同组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33793822/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com