175. 组合两个表
题目
表1: Person
列名 | 类型 |
---|---|
PersonId | int |
FirstName | varchar |
LastName | varchar |
PersonId 是上表主键
表2: Address
列名 | 类型 |
---|---|
AddressId | int |
PersonId | int |
City | varchar |
State | varchar |
AddressId 是上表主键
编写一个 SQL 查询,满足条件:无论 person 是否有地址信息,都需要基于上述两表提供 person 的以下信息:
FirstName, LastName, City, State
思路
这里考察左外连接left join(left outer join)中on和where的不同。
左连接:
select 字段列表
from 表1 left [outer] join 表2
on 条件;
- on:如果条件不匹配,也会返回左表的信息,右表为空NULL。
- where:如果条件不匹配,左表右表的信息都不返回。
代码
select FirstName, LastName, City, State
from Person left join Address
on Person.PersonId = Address.PersonId;