leetcode-175. 组合两个表

  • 题目描述
    SQL架构
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')

*±------------±--------+
| 列名 | 类型 |
±------------±--------+
| PersonId | int |
| FirstName | varchar |
| LastName | varchar |
±------------±--------+
PersonId 是上表主键
±------------±--------+
| 列名 | 类型 |
±------------±--------+
| AddressId | int |
| PersonId | int |
| City | varchar |
| State | varchar |
±------------±--------+
AddressId 是上表主键

编写一个 SQL 查询,满足条件:无论 person 是否有地址信息,都需要基于上述两表提供 person 的以下信息:*

FirstName, LastName, City, State

来源:力扣(LeetCode)
链接:175. 组合两个表

  • 分析
    题目涉及到组合,首先想到的便是外连接了,在这里根据题目要求*“无论 person 是否有地址信息,都需要基于上述两表提供 person 的以下信息”*,便可以考虑使用左外连接。
  • 代码
select Person.FirstName,Person.LastName,Address.City,Address.State from Person
left join Address on Person.PersonId=Address.PersonId;

-总结
题目很简单,主要考察怎么去查询两张表里面的内容(通过连接)。
另外若使用右外连接则要用right join,若是要使用全连接则直接使用join即可。

leetcode-175. 组合两个表_第1张图片
2019.12.06

你可能感兴趣的:(leetcode刷题,#,sql)