跨列的SQL组

时间:2014-07-08 17:31:56

标签: mysql group-by having

我有一个简单的消息系统,现在消息应按主题分组。所以表格如下:

   id  | sender | recipient | subject
------------------------------------
    1  |    16  |     17    |  Hello   
    2  |    17  |     16    |  Hello   
    3  |    12  |     16    |  Hello   

“sender”和“recipient”是用户表中的id。

因此,用户将看到按主题分组的消息,这可能很容易被GROUP BY。

问题在于,邮件也是分组的,具有相同的主题,但其他发件人和收件人。只有发件人和收件人是相同的,才可以对邮件进行分组吗?在示例中,消息1和2应该分组,但不应该分组3.所以我需要分组2列。

1 个答案:

答案 0 :(得分:0)

也许......我不确定我是否完全理解这个问题。

Select A.ID, A.Sender, A.Recipient, A.Subject
FROM tableName A
LEFT JOIN tableName B
  on A.Sender=B.Recipient 
 AND A.Subject=B.Subject
Where Sender.ID = USERLOGGEDIN OR B.Recipient = USERLOGGEDIN
ORDER By Subject, ID