【发布时间】:2017-11-14 09:30:27
【问题描述】:
我有以下数据库。
msg
....
- uid (pk)
- sender
- msg
relation
---------
- uid (fk)
- reciever
一条消息可以发送给多个收件人,我希望收到所有收件人和发件人的唯一列表。问题是发件人也可以是收件人,所以我得到了重复。
一个例子是:
SELECT msg.sender,relation.reciever,msg.msg,msg.uid from msg inner join relation on msg.uid = relation.uid group by msg.sender;
+-------------+-------------+-------+-----+
| sender | reciever | msg | uid |
+-------------+-------------+-------+-----+
| 123 | 321 | Test1 | 1 |
| 321 | 123 | Test2 | 2 |
+-------------+-------------+-------+-----+
问题是现在存在重复。我想要其中一个,而不是发件人或收件人在任一领域都是唯一的。为此,我在组中添加了 msg.reciever,如下所示:
SELECT msg.sender,relation.number,msg.msg,msg.uid from msg inner join
relation on msg.uid = relation.uid group by msg.sender, relations.reciever;
但结果是一样的。我将如何完成跨两列生成独特结果的任务?
为了澄清,最终结果应该是:
+-------------+-------------+-------+-----+
| sender | reciever | msg | uid |
+-------------+-------------+-------+-----+
| 123 | 321 | Test1 | 1 |
+-------------+-------------+-------+-----+
或
+-------------+-------------+-------+-----+
| sender | reciever | msg | uid |
+-------------+-------------+-------+-----+
| 321 | 123 | Test2 | 2 |
+-------------+-------------+-------+-----+
【问题讨论】:
-
我想这可能对你有帮助:stackoverflow.com/questions/12188027/…
-
对不起,如果我不在同一页面上,但我想要不同的值组合?与他所要求的相反?