175. 组合两个表
表1:Person
列名 | 类型 | 备注 |
PersonId | int | 主键 |
FirstName | varchar |
|
LastName | varchar |
|
表2:Address
列名 | 类型 | 备注 |
AddressId | int | 主键 |
PersonId | int |
|
City | varchar |
|
State | varchar |
|
要求:无论person是否有地址信息,都需要基于上述两表提供person的以下信息:
FirstName, LastName, City, State
例如:表一中有数据:[1, "Wang", "Allen"], 表二中有数据[1,2,"New York City","New York"]
预期输出["Wang", "Allen", null, null]
select p.FirstName, p.LastName, a.City, a.State
from Person p left join Address a
on p.PersonId = a.PersonId
需要使用左连接(left join) , 左连接的结果集包含左表的所有行,即使这些行在右表中没有出现。如果在右表中没有匹配行,则在结果集中的所有选择列表列均为空值。