# Write your MySQL query statement below
175. 组合两个表
表: Person
+-------------+---------+ | 列名 | 类型 | +-------------+---------+ | PersonId | int | | FirstName | varchar | | LastName | varchar | +-------------+---------+ personId 是该表的主键列。 该表包含一些人的 ID 和他们的姓和名的信息。
表: Address
+-------------+---------+ | 列名 | 类型 | +-------------+---------+ | AddressId | int | | PersonId | int | | City | varchar | | State | varchar | +-------------+---------+ addressId 是该表的主键列。 该表的每一行都包含一个 ID = PersonId 的人的城市和州的信息。
编写一个SQL查询来报告 Person
表中每个人的姓、名、城市和州。如果 personId
的地址不在 Address
表中,则报告为空 null
。
以 任意顺序 返回结果表。
查询结果格式如下所示。
示例 1:
输入: Person表: +----------+----------+-----------+ | personId | lastName | firstName | +----------+----------+-----------+ | 1 | Wang | Allen | | 2 | Alice | Bob | +----------+----------+-----------+ Address表: +-----------+----------+---------------+------------+ | addressId | personId | city | state | +-----------+----------+---------------+------------+ | 1 | 2 | New York City | New York | | 2 | 3 | Leetcode | California | +-----------+----------+---------------+------------+ 输出: +-----------+----------+---------------+----------+ | firstName | lastName | city | state | +-----------+----------+---------------+----------+ | Allen | Wang | Null | Null | | Bob | Alice | New York City | New York | +-----------+----------+---------------+----------+ 解释: 地址表中没有 personId = 1 的地址,所以它们的城市和州返回 null。 addressId = 1 包含了 personId = 2 的地址信息。
相似题目
原站题解
pythondata 解法, 执行用时: 348 ms, 内存消耗: 66.2 MB, 提交时间: 2024-05-27 09:41:45
import pandas as pd def combine_two_tables(person: pd.DataFrame, address: pd.DataFrame) -> pd.DataFrame: combined = person.merge(address, on='personId', how='left') columns = ['firstName', 'lastName', 'city', 'state'] combined = combined[columns] return combined # 一行返回 def combine_two_tables2(person: pd.DataFrame, address: pd.DataFrame) -> pd.DataFrame: return person.merge(address, on='personId', how='left')[['firstName', 'lastName', 'city', 'state']]
mysql 解法, 执行用时: 437 ms, 内存消耗: 0 B, 提交时间: 2022-06-02 10:00:02
# Write your MySQL query statement below select FirstName,LastName,City,State from Person left join Address on Person.PersonId=Address.PersonId;
mysql 解法, 执行用时: 3208 ms, 内存消耗: N/A, 提交时间: 2018-08-21 19:24:04
# Write your MySQL query statement below select FirstName,LastName,City,State from Person left join Address on Person.PersonId=Address.PersonId;