175. 组合两个表

表1:Personsql

列名code

类型it

备注table

PersonIdast

intclass

主键select

FirstName数据

varchartab

 

LastNameco

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) , 左链接的结果集包含左表的全部行,即便这些行在右表中没有出现。若是在右表中没有匹配行,则在结果集中的全部选择列表列均为空值。