我应该在SQL中使用嵌套选择还是为这种情况创建临时表?

时间:2014-12-09 13:50:21

标签: mysql sql-server

                  EMPLOYEES
empno   firstname  lastname    reportsTo    designation
1002    Murphy     Diane            null    President
1056    Patterson  Mary             1002    VP Sales
1076    Firrelli   Jeff             1002    VP Marketing
1088    Patterson  William          1056    Sales Manager (APAC)
1102    Bondur     Gerard           1056    Sale Manager (EMEA)
1143    Bow        Anthony          1056    Sales Manager (NA)

这是我正在处理的表格,reportsTo指的是老板的empno

我不知道如何查询以获取员工老板的名字以及他的名字作为MySQL的输出。我需要的是:

firstname    lastname    assistant_of
Patterson    Mary        Murphy Diane
Firrelli     Jeff        Murphy Diane
Patterson    William     Patterson Mary
Bondur       Gerard      Patterson Mary
Bow          Anthony     Patterson Mary

我应该怎么做临时表,或者我可以使用嵌套选择。

这个问题似乎与Use Temporary Tables or Nested Select in retrieving data from multiple table?类似 但"每个查询都是一个不同的故事"

1 个答案:

答案 0 :(得分:2)

使用自我加入

SELECT b.firstname,
       b.lastname,
       a.firstname + ' ' + a.lastname AS assisant_of
FROM   EMPLOYEES a
       JOIN EMPLOYEES b
         ON a.empno = b.reportsTo