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性能压力基准测试工具sysbench的使用简介
Apr 21 MySQL
教你解决往mysql数据库中存入汉字报错的方法
May 06 MySQL
详解MySQL 联合查询优化机制
May 10 MySQL
分析MySQL抛出异常的几种常见解决方式
May 18 MySQL
带你学习MySQL执行计划
May 31 MySQL
Mysql数据库索引面试题(程序员基础技能)
May 31 MySQL
SQL实现LeetCode(197.上升温度)
Aug 07 MySQL
浅谈MySQL之select优化方案
Aug 07 MySQL
SQL优化老出错,那是你没弄明白MySQL解释计划用法
Nov 27 MySQL
MySQL 分区表中分区键为什么必须是主键的一部分
Mar 17 MySQL
MySQL中一条SQL查询语句是如何执行的
Apr 08 MySQL
MySQL创建管理LIST分区
Apr 13 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
PHP 和 MySQL 开发的 8 个技巧
2007/01/02 PHP
火车头采集器3.0采集图文教程
2007/03/17 PHP
codeigniter框架批量插入数据
2014/01/09 PHP
php 字符串压缩方法比较示例
2014/01/23 PHP
MyEclipse常用配置图文教程
2014/09/11 PHP
php添加数据到xml文件的简单例子
2016/09/08 PHP
PHP编写daemon process详解及实例代码
2016/09/30 PHP
php实现的证件照换底色功能示例【人像抠图/换背景图】
2020/05/29 PHP
jQuery回车实现登录简单实现
2013/08/20 Javascript
jQuery实现自动与手动切换的滚动新闻特效代码分享
2015/08/27 Javascript
详解Angularjs filter过滤器
2016/02/06 Javascript
jQuery实现获取table表格第一列值的方法
2016/03/01 Javascript
JS实现设置ff与ie元素绝对位置的方法
2016/03/08 Javascript
Javascript函数中的arguments.callee用法实例分析
2016/09/16 Javascript
jquery组件WebUploader文件上传用法详解
2020/10/23 Javascript
jquery hover 不停闪动问题的解决方法(亦为stop()的使用)
2017/02/10 Javascript
jQuery中的deferred对象和extend方法详解
2017/05/08 jQuery
JS声明对象时属性名加引号与不加引号的问题及解决方法
2018/02/16 Javascript
轻松搞定jQuery+JSONP跨域请求的解决方案
2018/03/06 jQuery
vue组件与复用详解
2018/04/08 Javascript
bootstrap treeview 树形菜单带复选框及级联选择功能
2018/06/08 Javascript
Vue 莹石摄像头直播视频实例代码
2018/08/31 Javascript
JavaScript 中判断变量是否为数字的示例代码
2020/10/22 Javascript
NodeJS和浏览器中this关键字的不同之处
2021/03/03 NodeJs
python多重继承实例
2014/10/11 Python
Python实现SMTP发送邮件详细教程
2021/03/02 Python
Python简单遍历字典及删除元素的方法
2016/09/18 Python
unittest+coverage单元测试代码覆盖操作实例详解
2018/04/04 Python
python dataframe向下向上填充,fillna和ffill的方法
2018/11/28 Python
对python读取CT医学图像的实例详解
2019/01/24 Python
pytorch中的卷积和池化计算方式详解
2020/01/03 Python
阿里云:Aliyun.com
2017/02/15 全球购物
应届生程序员求职信
2013/11/05 职场文书
烹饪自我鉴定
2014/03/01 职场文书
2014年小学教导处工作总结
2014/12/19 职场文书
2015年城管个人工作总结范文
2015/04/20 职场文书