如何基于同一表中的另一个列数据查看列数据?

时间:2019-07-05 03:31:38

标签: sql oracle

SQL>从员工中选择employeeid,fname,薪水,主管;

EMPLOYEEID FNAME               SALARY SUPERVISOR
---------- --------------- ---------- ----------
       111 Heng                265000
       246 Ananda              150000        111
       231 Nagapan              85000        246
       123 Vellu               105000        111
       443 Fatimah              80000        111
       433 Amin                 66500        443
       323 Kamuingat            76500        443
       200 Jing                 24500        135
       135 Hong                 45000        111
       322 Derek                75000        123
       128 Dong                 38000        135
       248 Fatt                 30000        135

我希望主管列视图作为主管名称。该名称已存在于fname中。如何根据employeeid列中的id设置主管名称视图?

2 个答案:

答案 0 :(得分:1)

您可能想要这样的东西:

select e.employeeid, e.fname, e.salary, s.fname
from employee e join employee s on (e.supervisor = s.employeeid)

您正在使用supervisor列作为id列将employee表与其自身连接。如果那没有意义,请在文档中查找联接。

答案 1 :(得分:0)

我认为您需要self join using outer join,否则结果中将忽略主管为空的第一条记录。

所以我想以下是您应该尝试的查询:

select e.employeeid, e.fname, e.salary, s.fname
from employee e left join employee s on (e.supervisor = s.employeeid)

请注意,我已经完成左加入

干杯!