Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.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 借助第三个表连接两个表的SQL查询_Mysql_Sql - Fatal编程技术网

Mysql 借助第三个表连接两个表的SQL查询

Mysql 借助第三个表连接两个表的SQL查询,mysql,sql,Mysql,Sql,我在mysql中有3个表: 从映射中选择*; id,部门id id2,部门id1 id3,部门id2 从名称中选择*; 身份证,姓名 id1,name1 id2,名称2 id3,name3 从部门中选择*; 部门id,部门名称 部门ID 1,部门名称1 部门ID 2,部门名称2 dept_id3,dept_name3为了连接N个表,您需要N-1个连接。在这里,有三个表,您需要两个连接: SELECT n.name, d.dept_name FROM names n JOIN mappi

我在mysql中有3个表:

从映射中选择*;
id,部门id
id2,部门id1
id3,部门id2
从名称中选择*;
身份证,姓名
id1,name1
id2,名称2
id3,name3
从部门中选择*;
部门id,部门名称
部门ID 1,部门名称1
部门ID 2,部门名称2

dept_id3,dept_name3
为了连接N个表,您需要N-1个连接。在这里,有三个表,您需要两个连接:

SELECT n.name, d.dept_name
FROM   names n
JOIN   mapping m ON n.id = m.id
JOIN   dept d ON d.dept_id = m.dept_id

没有为你做作业。如果是mysql,那么您应该在问题中添加mysql标记。此外,还希望您展示您使用一些示例数据所做的尝试、输出以及希望作为输出的内容。甚至可能是一个指向SQL FIDLE的链接,这样人们就可以很容易地重现您的问题。您将映射表显示了两次。典型的多对多加入,请随时研究您的作业,以便:当我们选择姓名、部门名称时,请在第一行阅读并接受答案,很明显,姓名将从姓名中选择。但是,我们如何确保从dept中选择dept_name?@pzk
name
dept_name
都是明确的名称(
name
仅存在于
names
中,
dept_name
仅存在于
dept
中),因此您可以按原样使用它们。但你是对的-为了更清晰,你可以使用完全限定的名称(即
表\u别名.column\u名称
)。我已经编辑了我的答案来使用这些术语。谢谢澄清。