SQL-使用一个元组中的值从另一个元组中获取值

时间:2013-10-20 14:24:29

标签: mysql sql tuples

我有一个名为employee的表,其中包含以下列 -

  

Fname,Lname,ssn(主键),薪水,主管ssn,部门名称。

现在,对于属于部门' Research'的表格中的每位员工,我想输出他的姓名,工资和他的主管的姓名。我现在拥有的是这个。

  

从员工中选择fname,salary,superssn,其中departmentname =' Research'

现在这只给了我员工主管的ssn,而不是主管的名字。我知道我必须将一名员工的超级人员与另一名拥有相同ssn的员工进行比较,并获得其他员工的姓名,因为他是他的主管,但我不确定如何实施这在同一个命令中。

2 个答案:

答案 0 :(得分:2)

您需要连接到employee表(并且您需要一个别名来引用该表),如下所示:

SELECT employee.fname, employee.salary, supervisorlist.fname as supervisor 
from employee 
left join employee as supervisorlist on supervisorlist.ssn = employee.supervisorssn
where employee.departmentname='Research';

答案 1 :(得分:1)

您需要自我加入:

SELECT researcher.fname, researcher.salary, supervisor.fname 
FROM employee researcher JOIN employee supervisor ON researcher.superssn = supervisor.ssn
WHERE researcher.departmentname='Research'; 

这为您提供了与主管/研究员ssn匹配的员工x员工的交叉产品中的所有相关配对。

如果你想在没有主管的情况下包括研究人员,那么你需要一个LEFT JOIN。