关于MySQL加入查询的澄清

时间:2014-07-05 10:07:56

标签: php mysql join inner-join

我在创建此JOIN查询时遇到了一些问题。

表格设置如下

|      tags      ||    tag_links   ||    articles    |
|________________||________________||________________|
 |              |  |              |  |              |
 |      id      |  |  article_id  |  |      id      |
 |   tag_name   |  |    tag_id    |  |              |

有3个表,这是多对多的关系。

  • 目标是找到与给定文章关联的所有标签 标识。
  • 标签表包含所有标签
  • tag_links表包含文章和文章之间的链接 标签,其中tag_id等于标签表中的id,以及 article_id等于文章表中的id
  • 文章表包含id(在其他列中,但是 其他栏目并不重要)

我很难过,因为已经提供了文章ID。我不认为在查询中甚至需要这个,但我现在不知所措。我试图抓住与我传入的article_id相关联的所有tag_id,然后从我刚刚查询的所有tag_id中获取所有tag_names。

非常感谢任何帮助。谢谢!

1 个答案:

答案 0 :(得分:2)

这是一个简单的连接,您可以使用它来获取给定文章ID的标记名称

select distinct t.* from tags t
join tag_links tl on(t.id = tl.tag_id)
where tl.article_id=@id <---- article id