Я хочу выбрать все сообщения, которые содержат определенный тег.Я пытаюсь сделать это с помощью этого запроса:
SELECT GROUP_CONCAT(t.tag_name) taglist
FROM posts p
JOIN posts_tags pt ON p.post_id = pt.post_id
JOIN tags t ON t.tag_id = pt.tag_id
WHERE (p.post_private = 0) AND t.tag_name = 'php'
GROUP BY p.post_id
Проблема в том, что запрос выше, выбирает все сообщения, содержащие тег php
, но не выбирает другие теги, которые может опубликовать сообщениесодержат.Без части AND t.tag_name = 'php'
он выбирает все теги, которые есть в сообщении, но я хочу иметь возможность фильтровать по тегу ...
Есть идеи, как это сделать?Я пробовал много вещей, но не могу понять ...
Пример данных без оператора AND
:
|| *taglist* ||
|| php,echo ||
|| c++, cout ||
Пример данных с оператором AND
:
|| *taglist* ||
|| php ||
Что я хочу:
|| *taglist* ||
|| php,echo ||
(сообщения, содержащие только тег PHP)