我有这张表用于用户之间的消息
id |sender |receiver
--------------------
|1 |2
|3 |1
|1 |4
|2 |1
我想选择 t.sender 或 t.receiver 等于 1 的所有行(我正在为其搜索消息的用户),但要按行的其他值分组(按其他用户分组)。
在此示例中,user1 的结果应包含按 user2、user3 和 user4 值分组的 3 行。
最佳答案
一种方法是使用 union all
获取它们。首先,您需要获取用户发送的消息,并将这些结果与同一用户收到的消息合并。
select receiver, count(1), 'Sending' from messages where sender = 1 group by receiver
union all
select sender, count(1), 'Receiving' from messages where receiver = 1 group by sender
关于mysql - 选择 column1 或 column2 等于 id,但按行的其他值分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30986199/