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 使用SQL语句修改表名的实现
Apr 07 MySQL
MySql学习笔记之事务隔离级别详解
May 12 MySQL
MySQL不使用order by实现排名的三种思路总结
Jun 02 MySQL
你知道哪几种MYSQL的连接查询
Jun 03 MySQL
mysql分组后合并显示一个字段的多条数据方式
Jan 22 MySQL
一文搞懂MySQL索引页结构
Feb 28 MySQL
SQL注入篇学习之盲注/宽字节注入
Mar 03 MySQL
利用JuiceFS使MySQL 备份验证性能提升 10 倍
Mar 17 MySQL
详解MySQL的主键查询为什么这么快
Apr 03 MySQL
MySQL 计算连续登录天数
May 11 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
论坛头像随机变换代码
2006/10/09 PHP
Codeigniter校验ip地址的方法
2015/03/21 PHP
Laravel 手动开关 Eloquent 修改器的操作方法
2019/12/30 PHP
javascript当onmousedown、onmouseup、onclick同时应用于同一个标签节点Element
2010/01/05 Javascript
javascript对数组的常用操作代码 数组方法总汇
2011/01/27 Javascript
javascript的parseFloat()方法精度问题探讨
2013/11/26 Javascript
js中匿名函数的创建与调用方法分析
2014/12/19 Javascript
使用Plupload实现直接上传附件至七牛云存储
2014/12/26 Javascript
js命名空间写法示例
2015/12/18 Javascript
javascript中对Date类型的常用操作小结
2016/05/19 Javascript
自动化测试读写64位操作系统的注册表
2016/08/15 Javascript
jQuery实用小技巧_输入框文字获取和失去焦点的简单实例
2016/08/25 Javascript
浅谈Nodejs应用主文件index.js
2016/08/28 NodeJs
jQuery ajaxForm()的应用
2016/10/14 Javascript
浅谈js函数的多种定义方法与区别
2016/11/29 Javascript
JS仿QQ好友列表展开、收缩功能(第一篇)
2017/07/07 Javascript
bootstrap-Treeview实现级联勾选
2017/11/23 Javascript
关于Vue在ie10下空白页的debug小结
2018/05/02 Javascript
jQuery中将json数据显示到页面表格的方法
2018/05/27 jQuery
vue监听input标签的value值方法
2018/08/27 Javascript
js array数组对象操作方法汇总
2019/03/18 Javascript
微信小程序环境下将文件上传到OSS的方法步骤
2019/05/31 Javascript
Vue实战教程之仿肯德基宅急送App
2019/07/19 Javascript
node.js中npm包管理工具用法分析
2020/02/14 Javascript
JavaScript设计模式之门面模式原理与实现方法分析
2020/03/09 Javascript
[01:18:33]Secret vs VGJ.S Supermajor小组赛C组 BO3 第一场 6.3
2018/06/04 DOTA
python批量导出导入MySQL用户的方法
2013/11/15 Python
使用python3.5仿微软记事本notepad
2016/06/15 Python
用python 批量更改图像尺寸到统一大小的方法
2018/03/31 Python
苹果香港官方商城:Apple香港
2016/09/14 全球购物
大学生社会实践评语
2014/04/25 职场文书
2014年小学国庆节活动方案
2014/09/16 职场文书
北京天坛导游词
2015/02/12 职场文书
班主任寄语2015
2015/02/26 职场文书
2015年施工员工作总结范文
2015/04/20 职场文书
死亡诗社观后感
2015/06/05 职场文书