Sql 基于同一表中的其他字段从一个字段检索值

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

我有两个表,我需要一个最终的表,它使用第一个表的字段从同一个表中获取其他字段值。 表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               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