如何多次加入同一个表

时间:2015-09-21 18:23:54

标签: sql oracle

我想多次加入同一张桌子; 例如,假设有两个表:

employee(ssn, lname, fname)
document(document_name, employee_ssn, manager_ssn)

在这里,我希望获得每个文档的员工和经理名称,所以我希望得到如下结果:

doc_name | e_lname | e_fname | m_lname | m_fname
   A     | lname1  | fname1  | lname2  | fname2
   B     | lname3  | fname3  | lname4  | fname4

等等。

所以我所做的就像下面这样:

select 
    d.doc_name, e1.lname, e1.fname, e2.lname, e2.fname
from document d
join employee e1 on (e1.ssn = d.employee_ssn)
join employee e2 on (e2.ssn = d.manager_ssn)

但是这给出了如下结果:

doc_name | e_lname | e_fname | m_lname | m_fname
   A     | lname1  | fname1  | lname1  | fname1
   A     | lname1  | fname1  | lname2  | fname2
   B     | lname3  | fname3  | lname3  | fname3
   B     | lname3  | fname3  | lname4  | fname4

如何多次加入同一个表格以获得预期结果?

0 个答案:

没有答案