Mysql 如何基于第二个内部联接的列返回结果?
我有以下表格: 标签:Mysql 如何基于第二个内部联接的列返回结果?,mysql,sql,postgresql,Mysql,Sql,Postgresql,我有以下表格: 标签: | id | title | 类别: | tag_id (FK tags.id) | category_tag_id (FK tags.id) | category_tag_id引用tags.id,因为我们使用的是tags表(我们可以简单地用这个表将一个类别分配给一个标记) 文章 | id | title | body | etc... | 文章\u标签 | article_id (FK articles.id) | tag_id (FK tags.id) |
| id | title |
类别:
| tag_id (FK tags.id) | category_tag_id (FK tags.id) |
category_tag_id引用tags.id,因为我们使用的是tags表(我们可以简单地用这个表将一个类别分配给一个标记)
文章
| id | title | body | etc... |
文章\u标签
| article_id (FK articles.id) | tag_id (FK tags.id) |
我正在尝试创建一个查询,选择与此技能相关的所有类别。我们通过搜索articles\u tags表中链接的标记来获取类别,然后我们只需要通过检查categories表来检查哪些类别与这些标记相关
这是我试过的
select tags.*
FROM tags
INNER JOIN categories ON tags.id = categories.tag_id
INNER JOIN article_tags ON article_tags.article_id = ID_OF_ARTICLE_WE_WANT_CATEGORIES_FROM
我还尝试添加了一个
where article_id = ID_OF_ARTICLE_WE_WANT_CATEGORIES_FROM
但是,此查询似乎返回所有类别,而不仅仅是与技能相关的类别
select tags.*
FROM tags
INNER JOIN categories ON tags.id = categories.tag_id
INNER JOIN article_tags ON article_tags.article_id = ID_OF_ARTICLE_WE_WANT_CATEGORIES_FROM
在您的查询中,表article_tags实际上没有连接到任何其他内容。查看您提供的架构,似乎article_tags
与tags
通过(article_tags.tag_id
->tags.id
)相关
请尝试以下查询:
SELECT tags.*
FROM tags
INNER JOIN categories ON tags.id = categories.tag_id
INNER JOIN article_tags ON article_tags.article_id = tags.id
WHERE article_tags.article_id = :user_input
看见