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三值逻辑与NULL
May 19 MySQL
mysql 数据插入优化方法之concurrent_insert
Jul 01 MySQL
MySQL修炼之联结与集合浅析
Oct 05 MySQL
mysql主从复制的实现步骤
Oct 24 MySQL
SQL优化老出错,那是你没弄明白MySQL解释计划用法
Nov 27 MySQL
关于mysql中时间日期类型和字符串类型的选择
Nov 27 MySQL
mysql5.5中文乱码问题解决的有用方法
May 30 MySQL
MySQL中order by的执行过程
Jun 05 MySQL
MySQL范围查询优化的场景实例详解
Jun 10 MySQL
MySQL数据库表约束讲解
Jun 21 MySQL
MySQL生成千万测试数据以及遇到的问题
Aug 05 MySQL
MySQL count(*)统计总数问题汇总
Sep 23 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
在项目中寻找代码的坏命名
2012/07/14 PHP
CodeIgniter连贯操作的底层原理分析
2016/05/17 PHP
thinkphp项目如何自定义微信分享描述内容
2017/02/20 PHP
tp5框架前台无限极导航菜单类实现方法分析
2020/03/29 PHP
jquery 使用点滴函数代码
2011/05/20 Javascript
JavaScript实现生成GUID(全局统一标识符)
2014/09/05 Javascript
js添加select下默认的option的value和text的方法
2014/10/19 Javascript
JQuery实现DIV其他动画效果的简单实例
2016/09/18 Javascript
原生JavaScript实现AJAX、JSONP
2017/02/07 Javascript
利用Javascript实现一套自定义事件机制
2017/12/14 Javascript
MUI 实现侧滑菜单及其主体部分上下滑动的方法
2018/01/25 Javascript
json 带斜杠时如何解析的实现
2019/08/12 Javascript
JavaScript实现省市区三级联动
2020/02/13 Javascript
解决Vue + Echarts 使用markLine标线(precision精度问题)
2020/07/20 Javascript
[40:56]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 Liquid vs TNC
2018/04/01 DOTA
Python+tkinter使用80行代码实现一个计算器实例
2018/01/16 Python
python+selenium实现自动抢票功能实例代码
2018/11/23 Python
浅谈python常用程序算法
2019/03/22 Python
Django框架模板语言实例小结【变量,标签,过滤器,继承,html转义】
2019/05/23 Python
Python PyCharm如何进行断点调试
2019/07/05 Python
Python面向对象之继承原理与用法案例分析
2019/12/31 Python
Django模板之基本的 for 循环 和 List内容的显示方式
2020/03/31 Python
python中的列表和元组区别分析
2020/12/30 Python
Python绘制数码晶体管日期
2021/02/19 Python
在css3中background-clip属性与background-origin属性的用法介绍
2012/11/13 HTML / CSS
ProBikeKit新西兰:自行车套件,跑步和铁人三项装备
2017/04/05 全球购物
法国房车租赁网站:Yescapa
2019/08/26 全球购物
美国浴缸、水槽和水龙头购物网站:Vintage Tub & Bath
2019/11/05 全球购物
北美最大的零售退货翻新商:VIP Outlet
2019/11/21 全球购物
blueseventy官网:铁人三项和比赛泳衣
2021/02/06 全球购物
Java Servlet的主要功能和作用是什么
2014/02/14 面试题
外贸主管求职简历的自我评价
2013/10/23 职场文书
青年安全生产示范岗事迹材料
2014/05/04 职场文书
2015年度优秀员工自荐书
2015/03/06 职场文书
基于Python编写一个监控CPU的应用系统
2022/06/25 Python
CSS实现鼠标悬浮动画特效
2023/05/07 HTML / CSS