题目:
表 Person
Column Name | Type |
---|---|
PersonId | int |
FirstName | varchar |
LastName | varchar |
PersonId
是该表的主键。
表 Address
Column Name | Type |
---|---|
AddressId | int |
PersonId | int |
City | varchar |
State | varchar |
PersonId
是该表的主键。
输出以下指定表头的信息。注意如果人物信息对应的地址为空,则输出空。
FirstName | LastName | City | State |
---|
解析:
从表Person
和表Address
的结构来看,FirstName
,LastName
是属于表Person
中的属性,而City
和State
则是属于表Address
中的属性。
同时PersonId
可以作为两个表的外键,将两个表连接起来。
select Person.Firstname,Person.Lastname,Address.City,Address.State
from Person
left JOIN Address
on Person.PersonId=address.PersonId
要格外注意,这里要是用left join
而不是join
。因为,题目要求,不管表Person
中的人是否在Address
表中有对应的地址信息,最后都应该输出(没有的就为空)。因此,需要左连接,以Person
表为准,连接Address表
。