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 相关文章推荐
MySQL之DML语言
Apr 05 MySQL
详解mysql三值逻辑与NULL
May 19 MySQL
浅谈MySQL user权限表
Jun 18 MySQL
mysql备份策略的实现(全量备份+增量备份)
Jul 07 MySQL
SQL 聚合、分组和排序
Nov 11 MySQL
MySQL Server层四个日志的实现
Mar 31 MySQL
MySQL表锁、行锁、排它锁及共享锁的使用详解
Apr 02 MySQL
数据分析数据库ClickHouse在大数据领域应用实践
Apr 03 MySQL
MySQL 执行数据库更新update操作的时候数据库卡死了
May 02 MySQL
MYSQL事务的隔离级别与MVCC
May 25 MySQL
mysql查看表结构的三种方法总结
Jul 07 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
不用数据库的多用户文件自由上传投票系统(1)
2006/10/09 PHP
PHP程序员编程注意事项
2008/04/10 PHP
php删除与复制文件夹及其文件夹下所有文件的实现代码
2013/01/23 PHP
Windows下Apache + PHP SESSION丢失的解决过程全纪录
2015/04/07 PHP
js 手机号码合法性验证代码集合
2012/09/29 Javascript
Extjs407 getValue()和getRawValue()区别介绍
2013/05/21 Javascript
js(jQuery)获取时间的方法及常用时间类搜集
2013/10/23 Javascript
JS中的log对象获取以及debug的写法介绍
2014/03/03 Javascript
IE6-8中Date不支持toISOString的修复方法
2014/05/04 Javascript
js获取当前日期前七天的方法
2015/02/28 Javascript
jQuery使用removeClass方法删除元素指定Class的方法
2015/03/26 Javascript
js获取上传文件的绝对路径实现方法
2016/08/02 Javascript
完美解决jQuery符号$与其他javascript 库、框架冲突的问题
2016/08/09 Javascript
Jquery Easyui进度条组件Progress使用详解(8)
2020/03/26 Javascript
原生的强大DOM选择器querySelector介绍
2016/12/21 Javascript
js实现鼠标拖动功能
2017/03/20 Javascript
Bootstrap滚动监听组件scrollspy.js使用方法详解
2017/07/20 Javascript
详解10分钟学会vue滚动行为
2017/09/21 Javascript
jquery实现企业定位式导航效果
2018/01/01 jQuery
Angular 4.x+Ionic3踩坑之Ionic 3.x界面传值详解
2018/03/13 Javascript
ES6使用export和import实现模块化的方法
2018/09/10 Javascript
VUE 自定义组件模板的方法详解
2019/08/30 Javascript
js根据后缀判断文件文件类型的代码
2020/05/09 Javascript
vue实现简易图片左右旋转,上一张,下一张组件案例
2020/07/31 Javascript
Python实现的飞速中文网小说下载脚本
2015/04/23 Python
python画图——实现在图上标注上具体数值的方法
2019/07/08 Python
使用pyhon绘图比较两个手机屏幕大小(实例代码)
2020/01/03 Python
python中对二维列表中一维列表的调用方法
2020/06/07 Python
5分钟实现Canvas鼠标跟随动画背景
2019/11/18 HTML / CSS
财务部出纳岗位职责
2013/12/22 职场文书
思想品德课教学反思
2014/02/10 职场文书
井冈山红色之旅感想
2014/10/07 职场文书
新闻稿标题
2015/07/18 职场文书
小学校园广播稿
2015/08/18 职场文书
Python Flask请求扩展与中间件相关知识总结
2021/06/11 Python
table设置超出部分隐藏,鼠标移上去显示全部内容的方法
2022/12/24 HTML / CSS