我有两个表:
消息:
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进行分组将只返回第一个收件人。
这种情况下的最佳实践是什么?我是否应该进行两个单独的查询(一个针对邮件本身,一个针对收件人(?有其他选择吗?
非常感谢
尝试使用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
在MySQL中,您可以使用GROUP BY和GROUP_CONCT来实现这一点(因此所有接收方都将连接到结果集中的一个字段中(