我在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;
答案 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