我正在尝试选择与我的数据库中的帖子一起使用的所有标记,但出于某种原因,我只为每个有标记的帖子添加一个标记。
这是我正在使用的查询:
SELECT p.post_id, p.post_title, t.tag_id, t.tag_name
FROM posts p
LEFT JOIN posts_tags pt ON pt.post_id = p.post_id
LEFT JOIN tags t ON pt.tag_id = t.tag_id
有什么想法吗?
答案 0 :(得分:1)
每个帖子都可以有很多标签。我建议使用MySQL's GROUP_CONCAT()并将所有标记放入一个字段中。如果需要,您可以在脚本中解析该字段。
修改强>
您似乎仍然在标记表上加入,因此它只返回该标记的那一行。尝试切换ON
子句中的表,以便它加入另一个方向。然后,您需要迭代结果(现在每个标记应该有一行。)我的原始解决方案将所有标记分组到一个字段中。
答案 1 :(得分:0)
这应该可以正常工作。事实上,因为它接近SO数据结构我使用data.stackexchange.com创建了一个,它工作得很好there