题目

image.png

建表语句

  1. Create table If Not Exists Person (PersonId int, FirstName varchar(255), LastName varchar(255))
  2. Create table If Not Exists Address (AddressId int, PersonId int, City varchar(255), State varchar(255))
  3. Truncate table Person
  4. insert into Person (PersonId, LastName, FirstName) values ('1', 'Wang', 'Allen')
  5. insert into Person (PersonId, LastName, FirstName) values ('2', 'Alice', 'Bob')
  6. Truncate table Address
  7. insert into Address (AddressId, PersonId, City, State) values ('1', '2', 'New York City', 'New York')
  8. insert into Address (AddressId, PersonId, City, State) values ('2', '3', 'Leetcode', 'California')

解题思路

因为表 Address 中的 personId 是表 Person 的外关键字,所以可以连接这两个表来获取一个人的地址信息。
考虑到可能不是每个人都有地址信息,我们应该使用 left join 而不是默认的 inner join。

image.png

SQL代码

  1. select FirstName, LastName, City, State
  2. from Person left join Address
  3. on Person.PersonId = Address.PersonId;

image.png