LeetCode推出Database,目前只有一题:

Problem:
Table: Person

+-------------+---------+
| Column Name | Type    |  
+-------------+---------+  
| PersonId    | int     |  
| FirstName   | varchar |  
| LastName    | varchar |  
+-------------+---------+  
PersonId is the primary key column for this table.

Table: Address

+-------------+---------+
| Column Name | Type    |
+-------------+---------+
| AddressId   | int     |
| PersonId    | int     |
| City        | varchar |
| State       | varchar |
+-------------+---------+
AddressId is the primary key column for this table.

Write a SQL query for a report that provides the following information for each person in the Person table, regardless if there is an address for each of those people:

FirstName, LastName, City, State

Solution: 对于某个Person,要求不管Address表中有没有这个Person的信息,都要返回以上四个字段,很容易想到使用left join,SQL语句如下:

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