我有两张桌子:
消息:
id
message_text
..omitted..
收件人
id
message_id
recipient_id
..omitted..
我想在表格中显示您发送的邮件以及您发送给谁的邮件。
to message date
paul,roger,micheal howdy 2011 12 12
paul hello 2011 12 12
paul,micheal hi 2011 12 12
显然,由于有多个收件人,连接查询将为x个收件人返回x个重复记录,id的分组将仅返回第一个收件人。
这种情况的最佳做法是什么? 我应该进行两个单独的查询(一个用于邮件本身,一个用于收件人)? 还有其他选择吗?
非常感谢
答案 0 :(得分:2)
使用GROUP_CONCAT()
SELECT
GROUP_CONCAT(recipient_name) AS recipients,
message_text AS message,
date
FROM Messages JOIN Recipients ON Messages.id = Recipients.message_id
GROUP BY Recipients.message_id, message_text, date
答案 1 :(得分:1)
在MySQL中,您可以使用GROUP BY和GROUP_CONCAT完成此操作(因此所有收据将在结果集中的一个字段中进行连接)