当前位置: 首页 > article >正文

LeetCode-175. 组合两个表

题目描述

表: Person

+-------------+---------+
| 列名         | 类型     |
+-------------+---------+
| PersonId    | int     |
| FirstName   | varchar |
| LastName    | varchar |
+-------------+---------+
personId 是该表的主键(具有唯一值的列)。
该表包含一些人的 ID 和他们的姓和名的信息。

表: Address

+-------------+---------+
| 列名         | 类型    |
+-------------+---------+
| AddressId   | int     |
| PersonId    | int     |
| City        | varchar |
| State       | varchar |
+-------------+---------+
addressId 是该表的主键(具有唯一值的列)。
该表的每一行都包含一个 ID = PersonId 的人的城市和州的信息。

编写解决方案,报告 Person 表中每个人的姓、名、城市和州。如果 personId 的地址不在 Address 表中,则报告为 null 。

以 任意顺序 返回结果表。

示例 

输入: 
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 的地址信息。

思路

可以使用 SQL 的 LEFT JOIN 来将 Person 表和 Address 表连接在一起。由于 Person 表中的每个人都有可能没有对应的地址信息,所以 LEFT JOIN 会确保即使没有找到匹配的地址信息,Person 表的记录也会被保留下来,并且城市和州会显示为 NULL

实现

# Write your MySQL query statement below
SELECT firstName,lastName,city,state
FROM Person LEFT JOIN Address
ON Person.PersonId =Address.PersonId

http://www.kler.cn/a/522285.html

相关文章:

  • Python 包管理工具 pip - pip 基础(安装包、升级包、卸载包、查看已安装的包、列出已安装的包)
  • Airflow:精通Airflow任务依赖
  • 【Linux笔记】Day4
  • 群晖docker获取私有化镜像http: server gave HTTP response to HTTPS client].
  • 【Docker】Docker入门了解
  • 视频外绘技术总结:Be-Your-Outpainter、Follow-Your-Canvas、M3DDM
  • H2 Database安装部署
  • VMware 中Ubuntu无网络连接/无网络标识解决方法【已解决】
  • PHP Error处理与优化指南
  • volatile之四类内存屏障指令 内存屏障 面试重点 底层源码
  • 多模态论文笔记——TECO
  • 已解决:Win10任务状态栏卡死点击无响应的解决方案
  • 【SAP-PP】生产订单和计划订单
  • DeepSeek-R1试用
  • AI在Facebook平台中的安全应用探索
  • JAVA 接口、抽象类的关系和用处 详细解析
  • Python-基础环境(01) 虚拟环境,Python 基础环境之虚拟环境,一篇文章助你完全搞懂!
  • 通过案例研究二项分布和泊松分布之间关系(2)
  • Lucene中DocValues 和 Stored Fields 的用法
  • 【Unity3D】Tilemap俯视角像素游戏案例
  • 字节启动AGI长期研究计划,代号Seed Edge
  • Nacos未授权新建用户漏洞(/nacos/v1/auth/users)
  • 深入理解JWT及其应用
  • 简易CPU设计入门:控制总线的剩余信号(一)
  • 粒子群算法 笔记 数学建模
  • 真正理解std::move