2013-07-29 3 views
1

Я использую настраиваемую версию таблиц данных для отображения записей из таблиц. В большинстве случаев это замечательно, но иногда мне нужно присоединиться к двум или более таблицам, чтобы показать конкретные данные из таблиц поиска. Вот новая проблема. У меня есть 3 таблицы ... event_categories, темы и темы_eventcategories. event_categories и темы являются обычными таблицами, а темы_eventcategories имеют поля «id», «theme_id» и «event_category_id».Как использовать MySQL для возврата конкатенированной строки?

Что мне нужно сделать, это получить список категорий событий, и если есть какие-либо темы, связанные с категорией событий, мне нужны темы в разделенной запятой строке. Это возможно?

+0

Это возможно, но использовать этот запрос для производственных целей? –

+0

Это будет то, что мы используем для внутреннего администрирования, так что это нормально, если это медленный запрос. – pogeybait

+0

Речь идет не о скорости. Если вы используете concat и имеете много событий, тогда возникнет проблема. Существует определенное количество символов, которые вы можете использовать в этом поле. Лучше всего использовать вложенный выбор –

ответ

1

Что вы хотите GROUP_CONCAT, может быть что-то вроде:

SELECT event, GROUP_CONCAT(theme) 
FROM themes_eventcategories a 
JOIN event_categories b ON a.event_category_id = b.id 
JOIN themes c ON a.theme_id = c.id 
GROUP BY event 
Смежные вопросы