我想选择包含特定标签的所有帖子。我尝试使用这个查询:
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
我的标签系统有问题。我有一个叫做ads的表,一个叫做标签的表,另一个叫做tags_map的表,它把标签链接到一个广告列表中。问题是,当我使用多个标签搜索一个广告时。
搜索参数: php、lorem和作业
附加在广告上的标签: jobs,php,html
SQL查询:
SELECT *, a.title AS ad_title, a.id AS ad_id
FROM ads AS a
LEFT JOIN tags_map AS tm ON tm.ad_id = a.id
LEFT JOIN tags AS t ON tm.tag_id = t.id
WHERE a.status='