【SQL】实战--组合两个表

题目描述

表: 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

任意顺序 返回结果表。

结果格式如下所示。

示例 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 的地址信息。

Solution

sql 复制代码
select p.firstName,p.lastName,a.city,a.state 
from Person p left join Address a 
on p.personId=a.personId
相关推荐
Dnui_King9 分钟前
告别复杂日志解析 用bin2sql轻松实现MySQL数据闪回
数据库·mysql
mqiqe9 分钟前
SQL Server数据库基于SQL性能优化
数据库·sql·性能优化
黑风风21 分钟前
记一次Spring Boot应用中数据库连接阻塞问题排查过程
数据库·spring boot·oracle
m0_7482507441 分钟前
PostgreSQL-01-入门篇-简介
数据库·postgresql
winner888142 分钟前
Hive SQL 精进系列:COALESCE 手册
hive·hadoop·sql
阳光九叶草LXGZXJ1 小时前
达梦数据库-学习-10-SQL 注入 HINT 规则(固定执行计划)
linux·运维·数据库·sql·学习
Slow菜鸟1 小时前
MongoDB分页实现方式对比:PageRequest vs Skip/Limit
数据库·mongodb
zru_96021 小时前
Rule-Engine 使用介绍
java·前端·数据库
小蒜学长2 小时前
乡政府管理系统设计与实现(代码+数据库+LW)
数据库·spring boot·后端·学习·旅游
inxunoffice2 小时前
批量将多个 Excel 合并成单个文件|批量按文件夹合并 Excel
数据库·excel