借助第三个表的SQL查询以联接两个表

时间:2018-11-08 17:55:58

标签: mysql sql

我在mysql中有3个表:

select *from mapping;

id,dept_id

id2,dept_id1

id3,dept_id2

select *from names;

id,name

id1,name1

id2,name2

id3,name3

select *from dept;

dept_id,dept_name

dept_id1,dept_name1

dept_id2,dept_name2

dept_id3,dept_name3

我必须从名称表中返回名称,并从dept表中返回dept_name,满足映射表中给出的条件。

获取所需数据的可能解决方案:

mysql> select names.name, dept.dept_name from names, dept, mapping where dept.dept_id = mapping.dept_id and names.id = mapping.id;

1 个答案:

答案 0 :(得分:0)

要连接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