2
我有一个带有GROUP_CONCAT的SQL语句的小问题。SELECT语句中的GROUP_CONCAT
我有这样的说法:
SELECT ni.*, GROUP_CONCAT(newsletter_item_receivers.value) AS receivers, nf.*, GROUP_CONCAT(nm.mailgroup_name) AS mailgroups
FROM newsletter_items ni
INNER JOIN newsletter_fields nf ON (nf.field_letter_uid = ni.letter_id)
LEFT JOIN newsletter_item_receivers ON (newsletter_item_receivers.letter_id = ni.letter_id)
INNER JOIN newsletter_mailgroups nm ON (FIND_IN_SET(nm.mailgroup_id, newsletter_item_receivers.value))
WHERE nf.field_name = 'letter_headline' AND ni.template = '". $template ."'
GROUP BY ni.letter_id
我做错了什么,因为我的输出一团糟。
我有4个表:
newsletter_items具有这些列:
letter_id (int)
letter_date (int)
template (varchar)
status (int)
和newsletter_item_receivers 具有这些列:
rid (int)
letter_id (int)
value (int)
newsletter_mailgroups
mailgroup_id (int)
mailgroup_name (varchar)
个
newsletter_fields
field_uid (int)
field_name (varchar)
field_content (text)
field_letter_uid (int)
我几乎得到我想要的输出,但我的邮件组会显示错误。我希望它可以显示像
A组,C组,但它显示像
A组,C组,A组,C组,C组 当我newsletter_item_receivers表包含此:
rid | letter_id | value
1 | 1 | 2
2 | 1 | 3
3 | 2 | 1
newsletter_item_receivers.letter_id指newsletter_items.letter_id和 newsletter_item_receivers.value指newsletter_mailgroups.mailgroup_id
有没有谁可以看到我做错了什么?
不幸的给我同样的结果:( – 2011-12-15 13:41:39