Я хочу выбрать все сообщения, которые содержат определенный тег. Я пытаюсь его с этим запросом:sql join problem
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 o nly)
RIGHT JOIN? Вы уверены, что это то, что вы хотите? –
Вы правы, мне здесь не нужен, но все еще не работает, хотя – networkprofile
Можете ли вы предоставить образцы данных и каков ваш ожидаемый результат? –