[LeetCode 175] Combine Two Tables
LeetCode 175 (SQL)
[Combine Two Tables] 문제 풀이
[LeetCode 175] Combine Two Tables
Description
Table: Person
1
2
3
4
5
6
7
+-------------+---------+
| Column Name | Type |
+-------------+---------+
| personId | int |
| lastName | varchar |
| firstName | varchar |
+-------------+---------+
personId is the primary key (column with unique values) for this table. This table contains information about the ID of some persons and their first and last names.
Table: Address
1
2
3
4
5
6
7
8
+-------------+---------+
| Column Name | Type |
+-------------+---------+
| addressId | int |
| personId | int |
| city | varchar |
| state | varchar |
+-------------+---------+
addressId is the primary key (column with unique values) for this table. Each row of this table contains information about the city and state of one person with ID = PersonId.
Write a solution to report the first name, last name, city, and state of each person in the Person table. If the address of a personId is not present in the Address table, report null instead.
Return the result table in any order.
The result format is in the following example.
Example 1
- Input:
- Person table:
1 2 3 4 5 6
+----------+----------+-----------+ | personId | lastName | firstName | +----------+----------+-----------+ | 1 | Wang | Allen | | 2 | Alice | Bob | +----------+----------+-----------+
- Address table:
1 2 3 4 5 6
+-----------+----------+---------------+------------+ | addressId | personId | city | state | +-----------+----------+---------------+------------+ | 1 | 2 | New York City | New York | | 2 | 3 | Leetcode | California | +-----------+----------+---------------+------------+
- Person table:
- Output:
1 2 3 4 5 6
+-----------+----------+---------------+----------+ | firstName | lastName | city | state | +-----------+----------+---------------+----------+ | Allen | Wang | Null | Null | | Bob | Alice | New York City | New York | +-----------+----------+---------------+----------+
- Explanation:
- There is no address in the address table for the personId = 1 so we return null in their city and state.
- addressId = 1 contains information about the address of personId = 2.
Constraints
Code
내 제출
1
2
3
4
5
# Write your MySQL query statement below
SELECT p.firstName, p.lastName, a.city, a.state
FROM Person p LEFT OUTER
JOIN Address a ON p.personId = a.personId;
| Runtime | Memory |
|---|---|
| 369 ms | 0.0 B |
다른 풀이
1
2
3
4
5
6
# Write your MySQL query statement below
select p.firstName,
p.lastName,
COALESCE(a.city, NULL) AS city,
COALESCE(a.state, NULL) AS state
from Person p left join Address a on p.personId = a.personId
Reference
This post is licensed under CC BY 4.0 by the author.
