LeetCode //MySQL - 175. Combine Two Tables

175. Combine Two Tables

Table: Person

±------------±--------+
| 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

±------------±--------+
| 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:
±---------±---------±----------+
| personId | lastName | firstName |
±---------±---------±----------+
| 1 | Wang | Allen |
| 2 | Alice | Bob |
±---------±---------±----------+
Address table:
±----------±---------±--------------±-----------+
| addressId | personId | city | state |
±----------±---------±--------------±-----------+
| 1 | 2 | New York City | New York |
| 2 | 3 | Leetcode | California |
±----------±---------±--------------±-----------+
Output:
±----------±---------±--------------±---------+
| 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.

From: LeetCode
Link: 175. Combine Two Tables


Solution:

Ideas:

To achieve this in MySQL, you can use a LEFT JOIN to combine the Person and Address tables. The LEFT JOIN will ensure that all records from the Person table are included in the result, even if there is no corresponding record in the Address table. If there is no match, the result will contain NULL for the city and state fields.

Code:
SELECT 
    p.firstName, 
    p.lastName, 
    a.city, 
    a.state
FROM 
    Person p
LEFT JOIN 
    Address a
ON 
    p.personId = a.personId;

相关推荐

  1. AtCoder ABC175

    2024-06-17 05:50:02       36 阅读
  2. LeetCode //MySQL - 175. Combine Two Tables

    2024-06-17 05:50:02       9 阅读
  3. AtCoder ABC172

    2024-06-17 05:50:02       36 阅读
  4. AtCoder ABC176

    2024-06-17 05:50:02       36 阅读
  5. BC115超级圣诞树

    2024-06-17 05:50:02       44 阅读
  6. Atcoder ABC179

    2024-06-17 05:50:02       31 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-06-17 05:50:02       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-17 05:50:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-17 05:50:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-17 05:50:02       18 阅读

热门阅读

  1. 【笔试记录】美团 | 230812 | cpp

    2024-06-17 05:50:02       7 阅读
  2. spring注解

    2024-06-17 05:50:02       5 阅读
  3. Qt第一次作业

    2024-06-17 05:50:02       9 阅读
  4. 【软件安装12】CloudCompare点云工具安装 Ubuntu18.04

    2024-06-17 05:50:02       8 阅读
  5. Linux下git用http连接时免输密码方法

    2024-06-17 05:50:02       7 阅读
  6. git 常用的命令

    2024-06-17 05:50:02       8 阅读
  7. 【多线程实例】

    2024-06-17 05:50:02       5 阅读
  8. Jupyter Notebook 入门教程

    2024-06-17 05:50:02       7 阅读
  9. 字符串数组——传递文本的不同方法实例

    2024-06-17 05:50:02       6 阅读
  10. Linux更改默认python版本

    2024-06-17 05:50:02       5 阅读
  11. 力扣上的经典问题:接雨水

    2024-06-17 05:50:02       6 阅读