LeetCode Database 175 组合两个表

1. 题目描述

表1: Person

1
2
3
4
5
6
7
8
+-------------+---------+
| 列名 | 类型 |
+-------------+---------+
| PersonId | int |
| FirstName | varchar |
| LastName | varchar |
+-------------+---------+
PersonId 是上表主键

表2: Address

1
2
3
4
5
6
7
8
9
+-------------+---------+
| 列名 | 类型 |
+-------------+---------+
| AddressId | int |
| PersonId | int |
| City | varchar |
| State | varchar |
+-------------+---------+
AddressId 是上表主键

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

1
FirstName, LastName, City, State

2. 题解

无论person是否有地址信息,都要提供person的信息。根据这一要求,可知使用LEFT JOIN

2.1. MySQL Solution

1
2
3
4
SELECT FirstName, LastName, City, State 
FROM Person AS tb1
LEFT JOIN Address AS tb2
ON tb1.PersonId = tb2.PersonId;

注意:SQL语句最后的分号不要落了,一落可能面试就挂了

panchaoxin wechat
关注我的公众号
支持一下