我有两个表,我需要一个最终表,它使用第一个表的字段从同一个表中获取其他字段值。 表1-emp_details
emp_no emp_no_manager dept_no salary emp_name
1 4 1 10000 emp1
2 5 1 14000 emp2
3 4 1 23000 emp3
4 5 1 40000 emp4
5 6 2 60000 emp5
6 3 80000 emp6
表2-dept_details
dept_no dept_name
1 it services
2 consulting services
3 procurement
4 finance
5 hr
预期结果
emp_no emp_name manager_name dept_name salary
1 emp1 emp4 it services 10000
2 emp2 emp5 it services 14000
3 emp3 emp4 it services 23000
4 emp4 emp5 it services 40000
5 emp5 emp6 consulting services 60000
6 emp6 procurement 80000
答案 0 :(得分:1)
这是基本的JOIN操作。你应该先检查一些SQL教程。
SELECT
e.emp_no
,e.emp_name
,m.emp_name AS manager_name
,d.dept_name
,e.salary
FROM emp_details e
LEFT JOIN emp_details m ON e.emp_no_manager = m.emp_no
LEFT JOIN dept_details d ON e.dept_no = d.dept_no
<强> SQL Fiddle DEMO 强>
答案 1 :(得分:0)
假设您只对员工直接/直线经理感兴趣,那么我认为这样做
SELECT
ed1.emp_no,
ed1.emp_name,
ed2.emp_name,
dd.dept_name,
ed1.salary
FROM emp_details ed1
JOIN emp_details ed2 ON ed2.emp_no = ed1.emp_no_manager
JOIN dept_details dd ON dd.dept_no = ed1.dept_no