Post

[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 |
      +-----------+----------+---------------+------------+
      
  • 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;


RuntimeMemory
369 ms0.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.