在一个表中加入多个FK值

时间:2013-12-11 13:44:02

标签: join foreign-keys

我正在编写一些访问查询,我想对特定查询提供一些帮助。我还是SQL的新手。这是我的表格的简化版本:

Project Details
---------------
projectID (PK)
projectStartDate
projectEndDate
projectName
managerID (FK)
leadID (FK)
coleadID (FK)


Employee
--------
empID (PK)
empName

managerID,leadID和coleadID都对应于empID。我想检索项目详细信息表,但用身份名称替换ID。我已经成功地使用内部联接一次为一个FK执行此操作,但无法找到为所有角色实现此目的的方法。

能够将结果上的属性名称更改为managerName,leadName和coleadName也是很好的。

谢谢!

1 个答案:

答案 0 :(得分:0)

同样的方式,你可能已经为一个ID做了这个:

SELECT pd.*
     , emp_m.empName ManagerName
     , emp_l.empName LeadName
     , emp_c.empName ColeadName
  FROM ProjectDetails pd
     , Employee emp_m
     , Employee emp_l
     , Employee emp_c
 WHERE pd.managerID = emp_m.empID(+)
   AND pd.leadID    = emp_l.empID(+)
   AND pd.coleadID  = emp_c.empID(+)

(+)用于外部联接,因此它将选择ProjectDetails表的所有记录,无论它是否与管理者,潜在客户或同事相匹配。