题目描述:
表: Person
+-------------+---------+
| 列名 | 类型 |
+-------------+---------+
| PersonId | int |
| FirstName | varchar |
| LastName | varchar |
+-------------+---------+
personId 是该表的主键。
表: Address
+-------------+---------+
| 列名 | 类型 |
+-------------+---------+
| AddressId | int |
| PersonId | int |
| City | varchar |
| State | varchar |
+-------------+---------+
addressId 是该表的主键
Person
表中每个人的姓、名、城市和州。如果 personId
的地址不在 Address
表中,则报告为 null
。
题目解析:
根据题目描述需要查询四个内容,分别是Person表中的FirstName,LastName;Address表中的City,State,显然我们需要用join来连接两个表。
再次分析得到,Address表中的PersonId和Person表中的PersonId相连接,同时并不是每个成员都有地址信息,所以可以判断得出不是内连接。
外连接可以用left join 和 right join
MYSQL实现:
select p.FirstName,p.LastName,a.City,a.State
from Person p left join Address a
on a.PersonId =p.PersonId;