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即可。

在這裏插入圖片描述
2019.12.06

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章