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
分析:因为两个表想要组合有笛卡尔乘积,但是题目说了,因为不管是否有person地址,都要提供person数据,也就是说,有null的哪一个元祖也要留下,这个时候,左外连接是最好的选择,但是直接做连接也是可以通过的
select FirstName, LastName,City,State
from Person left join Address
on Person.PersonId = Address.PersonId;
本文通过一个具体的案例演示了如何使用SQL的左外连接来整合两个表的数据,即使其中一个表的部分记录在另一个表中没有匹配项也能确保所有记录被包含在最终结果集中。
700

被折叠的 条评论
为什么被折叠?



