Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如何基于第二个内部联接的列返回结果?_Mysql_Sql_Postgresql - Fatal编程技术网

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
看见