SQL实现LeetCode(175.联合两表)


Posted in MySQL onAugust 04, 2021

[LeetCode] 175.Combine Two Tables 联合两表

Table: Person

+-------------+---------+
| Column Name | Type    |
+-------------+---------+
| PersonId    | int     |
| FirstName   | varchar |
| LastName    | varchar |
+-------------+---------+
PersonId is the primary key column for this table.

Table: Address

+-------------+---------+
| Column Name | Type    |
+-------------+---------+
| AddressId   | int     |
| PersonId    | int     |
| City        | varchar |
| State       | varchar |
+-------------+---------+
AddressId is the primary key column for this table.

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:

FirstName, LastName, City, State

LeetCode还出了是来到数据库的题,来那么也来做做吧,这道题是第一道,相对来说比较简单,是一道两表联合查找的问题,我们需要用到Join操作,关于一些Join操作可以看我之前的博客SQL Left Join, Right Join, Inner Join, and Natural Join 各种Join小结,最直接的方法就是用Left Join来做,根据PersonId这项来把两个表联合起来:

解法一:

SELECT Person.FirstName, Person.LastName, Address.City, Address.State FROM Person LEFT JOIN Address ON Person.PersonId = Address.PersonId;

在使用Left Join时,我们也可以使用关键Using来声明我们相用哪个列名来进行联合:

解法二:

SELECT Person.FirstName, Person.LastName, Address.City, Address.State FROM Person LEFT JOIN Address USING(PersonId);

或者我们可以加上Natural关键字,这样我们就不用声明具体的列,MySQL可以自行搜索相同的列:

解法三:

SELECT Person.FirstName, Person.LastName, Address.City, Address.State FROM Person NATURAL LEFT JOIN Address;

参考资料:

https://leetcode.com/discuss/21216/its-a-simple-question-of-left-join-my-solution-attached

https://leetcode.com/discuss/53001/comparative-solution-between-left-using-natural-left-join

到此这篇关于SQL实现LeetCode(175.联合两表)的文章就介绍到这了,更多相关SQL实现联合两表内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

MySQL 相关文章推荐
IDEA 链接Mysql数据库并执行查询操作的完整代码
May 20 MySQL
MySQL中distinct和count(*)的使用方法比较
May 26 MySQL
MySQL系列之七 MySQL存储引擎
Jul 02 MySQL
MySQL如何解决幻读问题
Aug 07 MySQL
MySQL常见优化方案汇总
Jan 18 MySQL
mysql聚集索引、辅助索引、覆盖索引、联合索引的使用
Feb 12 MySQL
MySQL之MyISAM存储引擎的非聚簇索引详解
Mar 03 MySQL
如何创建一个创建MySQL数据库中的datetime类型
Mar 21 MySQL
详解MySQL的主键查询为什么这么快
Apr 03 MySQL
mysql使用instr达到in(字符串)的效果
Apr 03 MySQL
MySQL 表锁定 LOCK和UNLOCK TABLES的 SQL语法
Apr 18 MySQL
面试官问我Mysql的存储引擎了解多少
Aug 05 MySQL
一篇文章带你深入了解Mysql触发器
Aug 02 #MySQL
sql注入教程之类型以及提交注入
MySQL子查询中order by不生效问题的解决方法
Aug 02 #MySQL
MySQL中utf8mb4排序规则示例
Aug 02 #MySQL
MySql子查询IN的执行和优化的实现
MySQL里面的子查询的基本使用
Aug 02 #MySQL
Centos7中MySQL数据库使用mysqldump进行每日自动备份的编写
Aug 02 #MySQL
You might like
PHP6 先修班 JSON实例代码
2008/08/23 PHP
ThinkPHP3.1查询语言详解
2014/06/19 PHP
php实现文件上传及头像预览功能
2017/01/15 PHP
浅谈PHP无限极分类原理
2019/03/14 PHP
Jquery动态更改一张位图的src与Attr的使用
2013/07/31 Javascript
通过javascript把图片转化为字符画
2013/10/24 Javascript
浅谈JQuery+ajax+jsonp 跨域访问
2016/06/25 Javascript
HTML5 JS压缩图片并获取图片BASE64编码上传
2020/11/16 Javascript
jQuery插件echarts实现的循环生成图效果示例【附demo源码下载】
2017/03/04 Javascript
详解vue-cli本地环境API代理设置和解决跨域
2017/09/05 Javascript
vue.js select下拉框绑定和取值方法
2018/03/03 Javascript
JavaScript设计模式之装饰者模式定义与应用示例
2018/07/25 Javascript
如何安装控制器JavaScript生成插件详解
2018/10/21 Javascript
微信小程序rich-text富文本用法实例分析
2019/05/20 Javascript
微信小程序npm引入vant-weapp的踩坑记录
2019/08/01 Javascript
利用d3.js实现蜂巢图表带动画效果
2019/09/03 Javascript
使用Node.js在深度学习中做图片预处理的方法
2019/09/18 Javascript
[01:07:17]EG vs Optic Supermajor 败者组 BO3 第一场 6.6
2018/06/07 DOTA
使用Nginx+uWsgi实现Python的Django框架站点动静分离
2016/03/21 Python
python list元素为tuple时的排序方法
2018/04/18 Python
Python‘==‘ 及 ‘is‘相关原理解析
2020/09/05 Python
使用Python Tkinter实现剪刀石头布小游戏功能
2020/10/23 Python
利用canvas实现图片下载功能来实现浏览器兼容问题
2019/05/31 HTML / CSS
Hertz荷兰:荷兰和全球租车
2018/01/07 全球购物
泰海淘:泰国king Power王权免税集团旗下跨境海淘综合型电商
2020/07/26 全球购物
马来西亚奢侈品牌购物商城:Valiram 247
2020/09/29 全球购物
工程造价与管理专业应届生求职信
2013/11/23 职场文书
酒店采购员岗位职责
2014/03/14 职场文书
幼儿园师德演讲稿
2014/05/06 职场文书
实验室标语
2014/06/21 职场文书
关于教师节的演讲稿
2014/09/04 职场文书
2015年电信员工工作总结
2015/05/26 职场文书
2019初中学生入团申请书
2019/06/27 职场文书
德劲DE1108畅想
2021/04/22 无线电
写一个Python脚本下载哔哩哔哩舞蹈区的所有视频
2021/05/31 Python
使用canvas对video视频某一刻截图功能
2021/09/25 HTML / CSS