一、题目
二、分析
可以通过连接两个表实现需求。由于提示是无论 persion 是否有地址信息,都要显示 FirstName 等,故需要以 Person 表为基表。
三、语句
3.1 使用 left join 连接两个表
select
a.FirstName,
a.LastName,
b.City,
b.State
from
Person a left join Address b on a.PersonId = b.PersonId
四、知识点
4.1 连接 join xxx on xx
内联接: inner join
inner join(等值连接) 只返回两个表中联结字段相等的行。
左联接: left join
left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录。
右联接: left join
right join(右联接) 返回包括右表中的所有记录和右表中联结字段相等的记录。
交叉联接: cross join
cross join(交叉联接) 即对表做笛卡尔积,不用on连接。需要注意的是若表有1000条,则交叉联接后表数据条数为
1000*1000 = 10w条。故慎用!