У меня небольшая проблема с оператором SQL с GROUP_CONCAT.GROUP_CONCAT в инструкции SELECT
У меня это заявление:
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)
я получаю почти вывод, что я хочу, но мои mailgroups отображаются неправильно. Я хочу это будет отображаться как
группы А, группы 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
есть ли кто-то, кто может видеть что я сделал не так?
К сожалению, это дает мне тот же результат :( –
Вы хотите nm.mailgroup_name или newsletter_item_receivers.value – ajreal
Блин, что это сделал Спасибо миллион :) –