Sql 基于同一表中的其他字段从一个字段检索值
我有两个表,我需要一个最终的表,它使用第一个表的字段从同一个表中获取其他字段值。 表1-emp_详情Sql 基于同一表中的其他字段从一个字段检索值,sql,nested,inner-join,Sql,Nested,Inner Join,我有两个表,我需要一个最终的表,它使用第一个表的字段从同一个表中获取其他字段值。 表1-emp_详情 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
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_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
假设你只对员工直接/直线经理感兴趣,那么我认为这样就可以了
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
这是基本的联接操作。您应该首先查看一些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