首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在MySQL中选择带有给定标签的帖子的所有标签?

如何在MySQL中选择带有给定标签的帖子的所有标签?
EN

Stack Overflow用户
提问于 2011-09-27 23:49:08
回答 2查看 1.9K关注 0票数 1

假设我有三个表: posts、tags和posts_tags。帖子存储我博客中的所有帖子,标签存储所有不同的标签,而posts_tags存储两者之间的关系。例如,如果id为2的帖子使用id为3的标签进行标记,则posts_tags将存储此关系。

我想构造一个查询,在这个查询中,我可以获得用给定id标记的所有帖子,以及与这些帖子相关联的其他标签。例如,我希望能够在一个查询中找到所有带有“编程”标签的帖子以及与该帖子关联的所有其他标签。

目前,我使用两个查询:一个用于查找带有给定标签的帖子,另一个用于查找这些帖子的所有标签。

有没有办法把这些查询合并成一个查询呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-09-27 23:52:22

此查询将返回具有标记:search_tag的所有帖子,第二列以逗号分隔的字符串列出适用于该帖子的所有其他标记(不包括您搜索的标记)。如果帖子只有您请求的标签,它将出现在列表中,但"additional_tags“列将为空)。

代码语言:javascript
运行
复制
 SELECT posts.id, GROUP_CONCAT(post_tags.tag) AS additional_tags
   FROM posts LEFT OUTER JOIN post_tags ON posts.id = post_tags.post_id
   WHERE posts.id IN (SELECT post_id FROM post_tags WHERE tag = :search_tag)
   AND post_tags.tag <> :search_tag
   GROUP BY posts.id
票数 4
EN

Stack Overflow用户

发布于 2011-09-27 23:56:10

假设你的"programming“id是1,你想得到所有标签id为1的帖子

代码语言:javascript
运行
复制
Select * from posts where tag_id in (select id from tag where id=1)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7571988

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档