SQL左外连接与复合键

时间:2016-12-21 19:02:33

标签: mysql sql

表Employee.A - 员工列表 表Phone.B - 员工电话号码

每个员工在电话表中只有一个电话号码,有时没有电话

我想将员工表加入电话表并带回所有包含电话号码的员工,无论电话号码是否存在。

SELECT A.EmployeeName, B.PhoneNumber
FROM Employee A LEFT OUTER JOIN Phone B
    ON A.EmployeeId= B.EmployeeId

复合关键员工

  • EmployeeOrg
  • EMPLOYEEID

复合钥匙电话

  • EmployeeOrg
  • EMPLOYEEID
  • PhoneId

我的问题是如何包含复合键。 我以为会是这个...但是这并没有像我预期的那样奏效。它将从其他组织(其他组织)带回员工.1。在下图中,您可以看到组织5返回。为什么呢?

SELECT A.EmployeeName, B.PhoneNumber
FROM Employee A LEFT OUTER JOIN Phone B
    ON A.EmployeeOrg = 1
   and A.EmployeeOrg = B.EmployeeOrg
   and A.EmployeeId  = B.EmployeeId

My Query result - I know the field names are different

0 个答案:

没有答案