Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >☆打卡算法☆LeetCode 175. 组合两个表 算法解析

☆打卡算法☆LeetCode 175. 组合两个表 算法解析

作者头像
恬静的小魔龙
发布于 2022-08-07 02:47:39
发布于 2022-08-07 02:47:39
35400
代码可运行
举报
文章被收录于专栏:Unity3DUnity3D
运行总次数:0
代码可运行
大家好,我是小魔龙,Unity3D软件工程师,VR、AR,虚拟仿真方向,不定时更新软件开发技巧,生活感悟,觉得有用记得一键三连哦。

一、题目

1、算法题目

“编写一个SQL查询来报告包中每个人的信息,如果id不在表中,则报告显示为空,返回结果表。”

题目链接:

来源:力扣(LeetCode)

链接: 175. 组合两个表 - 力扣(LeetCode)

2、题目描述

表: Person

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
+-------------+---------+
| 列名         | 类型     |
+-------------+---------+
| PersonId    | int     |
| FirstName   | varchar |
| LastName    | varchar |
+-------------+---------+

personId 是该表的主键列。 该表包含一些人的 ID 和他们的姓和名的信息。  

表: Address

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
+-------------+---------+
| 列名         | 类型    |
+-------------+---------+
| AddressId   | int     |
| PersonId    | int     |
| City        | varchar |
| State       | varchar |
+-------------+---------+

addressId 是该表的主键列。 该表的每一行都包含一个 ID = PersonId 的人的城市和州的信息。  

编写一个SQL查询来报告 Person 表中每个人的姓、名、城市和州。如果 personId 的地址不在 Address 表中,则报告为空  null 。

以 任意顺序 返回结果表。

查询结果格式如下所示。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
示例 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 的地址信息。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
示例 2

二、解题

1、思路分析

怎么混进来一个SQL题目呢。。。

首先是两个表Person和Address,其中personId是表Person的外关键字。

可以连接两个表来获取一个人的地址信息。

使用outer join关键词。

2、代码实现

代码参考:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
select FirstName, LastName, City, State
from Person left join Address
on Person.PersonId = Address.PersonId;

3、时间复杂度

时间复杂度:

空间复杂度:

三、总结

如果没有某个人的地址信息。

使用where子句进行过滤记录会失败。

因为它不会显示姓名信息。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-07-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
leet-code两表求合查询
编写一个SQL查询来报告Person表中每个人的姓、名、城市和州。如果personId的地址不在Address表中,则报告为空null 。以 任意顺序 返回结果表。
兔云小新LM
2022/11/21
5820
【每日SQL打卡】​​​​​​​​​​​DAY 2 丨组合两个表【难度简单】
编写一个 SQL 查询,满足条件:无论 person 是否有地址信息,都需要基于上述两表提供 person 的以下信息:
不吃西红柿
2022/07/29
3680
组合两个表(C++)
编写一个SQL查询来报告 Person 表中每个人的姓、名、城市和州。如果 personId 的地址不在 Address 表中,则报告为空 null 。
GeekLiHua
2025/01/21
2110
【leetcode两题选手】MySQL类题目(一)
编写一个 SQL 查询,满足条件:无论 person 是否有地址信息,都需要基于上述两表提供 person 的以下信息:
看、未来
2020/08/25
4430
【leetcode两题选手】MySQL类题目(一)
2022-11-17:组合两个表。请写出sql语句,执行结果是{“headers“: [“first_name“, “last_name“, “city“, “
2022-11-17:组合两个表。请写出sql语句,执行结果是{"headers": "first_name", "last_name", "city", "state", "values": ["Allen", "Wang", null, null, "Bob", "Alice", "New York City", "New York"]}。
福大大架构师每日一题
2022/11/17
3490
2022-11-17:组合两个表。请写出sql语句,执行结果是{“headers“: [“first_name“, “last_name“, “city“, “
在 Swift 中使用 SQL 组合人员和地址数据
在本篇文章中,我们将讨论如何结合两个表——Person 和 Address,以便生成包含每个人的姓名和地址信息的结果表。如果某人的地址信息不存在,则对应的城市和州返回为 null。我们将用 Swift 和 SQLite 数据库实现这一功能,并详细分析其逻辑。
Swift社区
2025/01/27
2270
在 Swift 中使用 SQL 组合人员和地址数据
LeetCode数据库篇|175组合两个表
大家好,从今天起我们将对Leetcode中数据库相关题目进行讲解,如果对SQL相关操作还不是很了解的读者可以点击万字Mysql学习笔记复习。
刘早起
2020/05/12
5870
「SQL面试题库」 No_4 组合两个表
「SQL面试题库」是由 不是西红柿 发起,全员免费参与的SQL学习活动。我每天发布1道SQL面试真题,从简单到困难,涵盖所有SQL知识点,我敢保证只要做完这100道题,不仅能轻松搞定面试,代码能力和工作效率也会有明显提升。
不吃西红柿
2023/04/21
3860
7天快速掌握MySQL-DAY5
首先公布一下DAY4的作业答案。 项目五: --创建表 create table person ( personid int not null primary key, firstname varchar(20) not null, lastname varchar(20) not null ); --插入数据 insert into person values (101, 'ming', 'Yao'); insert into person values (102, 'lei', 'Wu'); inser
披头
2019/12/26
3400
LeetCode-SQL(一)
表1: Person +-------------+---------+ | 列名 | 类型 | +-------------+---------+ | PersonId | int | | FirstName | varchar | | LastName | varchar | +-------------+---------+ PersonId 是上表主键 表2: Address +-------------+---------+ | 列名 | 类型 | +-------------+---------+ | AddressId | int | | PersonId | int | | City | varchar | | State | varchar | +-------------+---------+ AddressId 是上表主键 编写一个 SQL 查询,满足条件:无论 person 是否有地址信息,都需要基于上述两表提供 person 的以下信息: FirstName, LastName, City, State 这一题,比较简单用left join就可以了。
_一级菜鸟
2019/12/20
4920
LeetCode数据库(一)
如果一个国家的面积超过300万平方公里,或者人口超过2500万,那么这个国家就是大国家。
万能青年
2019/08/30
6460
MySQL-面试题
编写一个 SQL 查询,满足条件:无论 person 是否有地址信息,都需要基于上述两表提供 person 的以下信息:
Quinlan
2021/05/22
3040
MySQL 多表查询、连接查询(内连接、外连接)
查询的结果是一个二维表,它是students表和classes表的“乘积”,即students表的每一行与classes表的每一行都两两拼在一起返回
Michael阿明
2020/07/13
4.3K0
MySQL 多表查询、连接查询(内连接、外连接)
图解面试题:多表如何查询?
查询结果的列名“学号”、“姓名”,在“学生”表里,列名“课程”、“成绩”在“成绩”表里,所以需要进行多表查询。
猴子聊数据分析
2019/12/27
7750
LeetCode刷题100道,让你滚瓜烂熟拿下SQL「建议收藏」
对人工智能感兴趣的小伙伴,请多关注以下通俗易懂,风趣幽默的人工智能体系分析 https://www.captainai.net/jeames
全栈程序员站长
2022/11/10
3.6K0
LeetCode刷题100道,让你滚瓜烂熟拿下SQL「建议收藏」
LeetCode 数据库 175. 组合两个表
原题链接 # Write your MySQL query statement below /* Write your T-SQL query statement below */ select Fi
glm233
2021/03/27
7140
第 3.3 节 Leetcode-Database 题解
转载地址 https://github.com/CyC2018/CS-Notes/blob/master/README.md
全栈程序员站长
2021/04/07
6450
LeetCode 0175 - Combine Two Tables
Write a SQL query for a report that provides the following information for each person in the Person table, regardless if there is an address for each of those people:
Reck Zhang
2021/08/11
2590
LeetCode-175. 组合两个表
编写一个 SQL 查询,满足条件:无论 person 是否有地址信息,都需要基于上述两表提供 person 的以下信息:
悠扬前奏
2019/05/28
4950
【Leetcode】175. 组合两个表
编写一个 SQL 查询,满足条件:无论 person 是否有地址信息,都需要基于上述两表提供 person 的以下信息:
Leetcode名企之路
2018/11/29
1.3K0
相关推荐
leet-code两表求合查询
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档