我需要执行一个查询 SELECT 来连接三个表(没问题)。尽管如此,第三个表可以或不具有与连接 KEY 匹配的任何元素。
我想要前两个表中的所有数据,如果项目在第三个表中还有信息,则将这些数据提取到。
例如,假设第一个表有一个人,第二个表有他/她的地址(每个人都住在任何地方),第三个表存储驾驶执照(不是每个人都有这个) - 但我需要获取所有数据,无论是否人(所有人)都有驾驶执照。
非常感谢阅读,如果可能的话给你建议/解决方案!
用于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