Leetcode No.175.Combine Two Tables

175. Combine Two Tables

原题目链接:175. Combine Two Tables

表: Person

+-------------+---------+
| Column Name | Type    |
+-------------+---------+
| PersonId    | int     |
| FirstName   | varchar |
| LastName    | varchar |
+-------------+---------+
PersonId 是这个表的主键。

表: Address

+-------------+---------+
| Column Name | Type    |
+-------------+---------+
| AddressId   | int     |
| PersonId    | int     |
| City        | varchar |
| State       | varchar |
+-------------+---------+
AddressId 是这个表的主键。

写一条SQL查询语句,为每一个在Person表中的人提供以下信息,不考虑是否每一个人都有对于的地址:

FirstName, LastName, City, State

Solution

方法:采用OUTER JOIN[Accepted]

Algorithm

因为Address表中的PersonId诗Person表的外键,我们可以JOIN 两张表获得每个人的地址信息。

考虑到并不是所有人都有对于的地址信息,我们应该采用OUTER JOIN,而不是INNER JOIN

MySQL

1
2
3
4
select FirstName, LastName, City, State
from Person left join Address
on Person.PersonId = Address.PersonId
;