思路:因为表 Address 中的 personId 是表 Person 的外关键字,所以我们可以连接这两个表来获取一个人的地址信息。考虑到可能不是每个人都有地址信息,我们应该使用 outer join 中的左外连接而不是默认的 inner join。
Inner Join 只返回那些在连接的两个表中都存在匹配值的行。
Outer Join 返回连接的两个表中的匹配的行或者所有行。如果在一个表中没有匹配的行,仍然会包含这些表的数据,并在结果中用NULL值表示。
- 左外连接返回左边表的所有行和右边表中与左边表匹配的行。
- 右外连接返回右边表的所有行和左边表中与右边表匹配的行。
- 全外连接返回两个表中的所有行,如果没有匹配的行,则使用NULL值表示。
代码:
# Write your MySQL query statement below
SELECT firstName, lastName, city, state
FROM Person LEFT JOIN Address
ON Person.personId = Address.personId;