0

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

table2-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
4

2 回答 2

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 小提琴演示

于 2013-07-04T14:14:53.603 回答
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
于 2013-07-04T14:14:30.583 回答