Mysql 按两列分组,反之亦然
我已尝试使用两列按分组:Mysql 按两列分组,反之亦然,mysql,sql,database,Mysql,Sql,Database,我已尝试使用两列按分组: SELECT recipient_id, sender_id, count(*) FROM messengers WHERE recipient_id=41 OR sender_id=41 group by recipient_id, sender_id 输出如下所示: 如何将第1行和第2行合并为一行,因为收件人id和发件人id的值相同,分别为40和41 这里可以使用的一个技巧是按两个ID列中的较小者和两个ID列中的较大者分组: SELECT LEAST(recip
SELECT recipient_id, sender_id, count(*) FROM messengers WHERE recipient_id=41 OR sender_id=41 group by recipient_id, sender_id
输出如下所示:
如何将第1行和第2行合并为一行,因为收件人id和发件人id的值相同,分别为40和41 这里可以使用的一个技巧是按两个ID列中的较小者和两个ID列中的较大者分组:
SELECT LEAST(recipient_id, sender_id), GREATEST(recipient_id, sender_id), COUNT(*)
FROM messengers
WHERE recipient_id = 41 OR sender_id = 41
GROUP BY LEAST(recipient_id, sender_id), GREATEST(recipient_id, sender_id)
到目前为止看起来不错。我将尝试使用它,让我们等待其他人的回答,然后我投票将你的答案作为可接受的答案。谢谢我已经修改了您对此选择*从选择*从信使订单按id描述的答案,其中收件人\u id=41或发件人\u id=41按最少收件人\u id、发件人\u id、最大收件人\u id分组,发件人id,但我很难将其转换为Laravel查询生成器。@Mr.Byte ANSI 92标准要求出现在SELECT中的列也出现在GROUP BY中,或者是聚合列。因此,您不应该在此处使用SELECT*。你可以用你的拉威尔问题问一个新问题。