SQL - 连接表但并非总是如此

时间:2013-08-01 14:29:32

标签: mysql sql join

我需要执行一个连接三个表的查询SELECT(没问题)。尽管如此,第三个表可以或不具有与加入KEY匹配的任何元素。

我想要前两个表中的所有数据,如果ITEMS在第三个表中有ALSO信息,请将此数据提取到。

例如,假设第一个表有一个人,第二个表有他/她的地址(每个人都住在任何地方),第三个表存储驾驶执照(不是每个人都有这个) - 但我需要获取所有数据是否有人(所有人)都有驾驶执照。

非常感谢阅读,如果有可能给你建议/解决方案!

1 个答案:

答案 0 :(得分:3)

使用LEFT JOIN加入第三个表格。使用INNER JOIN必须存在一行。使用LEFT JOIN,“空白”将填充NULL s。

SELECT
  p.PersonID, -- NOT NULL
  -- dl.PersonID, -- Can be null. Don't use this one.
  p.FirstName,
  p.LastName,
  a.City,
  a.Street,
  dl.ValidUntilDate
FROM
  Person p
  INNER JOIN Addresse a ON a.AddressID = p.HomeAddressID
  LEFT JOIN DrivingLicence dl ON dl.PersonId = p.PersonID