我的表基本上是一个消息传递表。我有以下字段:
id:integer,sender_id:integer,receiver_id:integer,message:text
我想要做的是为每对发送者和接收者获取COUNT行消息。
比如说:
我希望结果显示10到12之间交换的消息数,在这种情况下,应该有5个。
同样对于用户3和4,应该表明他们已经交换了2条消息。
尽可能在一个查询中。
我希望我有道理。
答案 0 :(得分:0)
SELECT COUNT(*) FROM tablename WHERE sender_id IN (10,12) AND receiver_id IN (10,12)
然而,这将计算他们自己发送给他们的任何消息。例如10-> 10。所以准确地说:
SELECT COUNT(*) FROM tablename
WHERE (sender_id = 10 AND receiver_id = 12)
OR (sender_id = 12 AND receiver_id = 10)