在对两列进行分组时消除冗余

rdrgkggo  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(264)

下面是我的table:

我想根据 sender 以及 Reciver 把他们分组,这样我就不会有多余的结果了。
例子:
发送方=2
接收器=1
接收器=2
发送方=1
在上述示例中,不应显示两个结果,只应显示一个结果。。
我正在使用mysql,下面给出了我正在使用的代码,它给出了多个结果,如图所示。。

SELECT Mid,sender,Reciver 
FROM `tbl_messages`
WHERE sender=1 or Reciver = 1 
GROUP by Reciver,sender or sender,Reciver;
7gcisfzg

7gcisfzg1#

试试这个:

SELECT newSender, newReceiver/*some aggregate functions or access other comlumns*/ FROM (
    SELECT Mid,/* add more columns if needed*/
           case when sender < reciver then sender else receiver end newSender,
           case when sender > reciver then sender else receiver end newReceiver
    FROM `tbl_messages`
    WHERE sender = 1 or Reciver = 1 
) a GROUP by newSender, newReceiver;

相关问题