у меня есть следующие таблицы:
сообщения: идентификатор, заголовок, дата, содержание
теги: идентификатор, имя
posts_tags: post_id, tag_id
Я хочу выделить заголовок со списком связанных тегов; следующий запрос отлично работает
SELECT p.title, GROUP_CONCAT( t.name ORDER BY t.name SEPARATOR ',' ) as tags_list
FROM posts AS p
JOIN posts_tags AS pt ON pt.post_id = p.id
JOIN tags AS t ON pt.tag_id = t.id
GROUP BY p.id
с этим запросом я получаю что-то похожее на это
title | tags_list
==================|===============================
Old cinema | film,movies
cooking shows | cooking,food,kitchen,television
Epic War Films | history,movies,war
Art in France | art,france,history
когда я хочу публиковать только сообщения с определенным тегом (например, "фильмы"), я попытался добавить предложение where:
SELECT p.title, GROUP_CONCAT( t.name ORDER BY t.name SEPARATOR ',' ) as tags_list
FROM posts AS p
JOIN posts_tags AS pt ON pt.post_id = p.id
JOIN tags AS t ON pt.tag_id = t.id
WHERE t.name = 'movies'
GROUP BY p.id
я заканчиваю с этим
title | tags_list
=================|===============================
Old cinema | movies
Epic War Films | movies
Я получил все сообщения с тегами "фильмы", но проблема в том, что столбец "tag_list" показывает только "фильмы" в каждой строке, вместо того, чтобы включать все другие теги, связанные с сообщением.
Как я могу это исправить?