LeetCode 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


解题思路:思路就是连接查询,从第一个表的第一个元组开始,依次从第二个表的第一个元组开始找,满足条件的就加以连接。但是这里用到了左连接,即第二个表不满足第一个表的属性要用null代替
解题代码:

Create table Person (PersonId int, FirstName varchar(255), LastName varchar(255))
Create table Address (AddressId int, PersonId int, City varchar(255), State varchar(255))
Truncate table Person
insert into Person (PersonId, LastName, FirstName) values ('1', 'Wang', 'Allen')
Truncate table Address
insert into Address (AddressId, PersonId, City, State) values ('1', '2', 'New York City', 'New York')
select Person.FirstName,LastName,Address.City,Address.State 
from Person left outer join Address
on Person.PersonId=Address.PersonId
发布了53 篇原创文章 · 获赞 27 · 访问量 4375

猜你喜欢

转载自blog.csdn.net/qq_44867340/article/details/104847890