【问题标题】:Select posts and tags in a single query在单个查询中选择帖子和标签
【发布时间】:2012-01-27 23:44:00
【问题描述】:

如果我有 3 张桌子:

帖子

post_id 标题 身体

标签

tag_id 名字

posts_tags

post_id tag_id

从单个查询中列出(选择)帖子和每个帖子的标签的最佳方法是什么?

【问题讨论】:

  • 我不明白为什么会投反对票。我想知道是否有一种方法可以获取帖子的所有标签,而无需多次返回帖子 ID、正文等。

标签: mysql select


【解决方案1】:

只需连接三个表。如果你使用左连接,你还会看到哪些帖子没有标签。

SELECT *
FROM posts 
LEFT JOIN posts_tags ON posts.post_id = posts_tags.post_id
LEFT JOIN tags ON posts_tags.tag_id = tags.tag_id

【讨论】:

  • 所以没有办法获得一篇文章的所有标签,而不返回超过一次的帖子id、正文等。这就是我想知道的。
  • 也有可能:代替“SELECT *”,写成“SELECT tags.name”,并在查询的 and 处附加一个过滤表达式“WHERE posts.post_id = 1”。跨度>
猜你喜欢
  • 2015-10-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多