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 相关文章推荐
jdbc使用PreparedStatement批量插入数据的方法
Apr 27 MySQL
将图片保存到mysql数据库并展示在前端页面的实现代码
May 02 MySQL
MySql学习笔记之事务隔离级别详解
May 12 MySQL
MySQL查看表和清空表的常用命令总结
May 26 MySQL
MySQL中使用or、in与union all在查询命令下的效率对比
May 26 MySQL
MYSQL(电话号码,身份证)数据脱敏的实现
May 28 MySQL
Prometheus 监控MySQL使用grafana展示
Aug 30 MySQL
一文了解MySQL二级索引的查询过程
Feb 24 MySQL
面试提问mysql一张表到底能存多少数据
Mar 13 MySQL
mysql的Buffer Pool存储及原理
Apr 02 MySQL
MySQL脏读,幻读和不可重复读
May 11 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数据库开发知多少
2006/10/09 PHP
ThinkPHP与PHPExcel冲突解决方法
2011/08/08 PHP
php中cookie的使用方法
2014/03/29 PHP
PHP中copy on write写时复制机制介绍
2014/05/13 PHP
PHP输出一个等腰三角形的方法
2015/05/12 PHP
基于ThinkPHP实现的日历功能实例详解
2017/04/15 PHP
PHP+MySql实现一个简单的留言板
2020/07/19 PHP
xml文档转换工具,附图表例子(hta)
2010/11/17 Javascript
JS前端框架关于重构的失败经验分享
2013/03/17 Javascript
封装好的js判断操作系统与浏览器代码分享
2015/01/09 Javascript
深入分析JSON编码格式提交表单数据
2015/06/25 Javascript
jQuery实现的手机发送验证码倒计时效果代码分享
2015/08/24 Javascript
JavaScript对象学习小结
2015/09/02 Javascript
JS中递归函数
2016/06/17 Javascript
JavaScript 继承详解(六)
2016/10/11 Javascript
Angular的$http与$location
2016/12/26 Javascript
你不知道的 javascript【推荐】
2017/01/08 Javascript
jQuery 实现鼠标画框并对框内数据选中的实例代码
2017/08/29 jQuery
如何在项目中使用log4.js的方法步骤
2019/07/16 Javascript
js实现随机点名程序
2020/09/17 Javascript
javascript实现前端分页效果
2020/06/24 Javascript
详解JavaScript 事件流
2020/09/02 Javascript
详解Python爬虫的基本写法
2016/01/08 Python
Python的shutil模块中文件的复制操作函数详解
2016/07/05 Python
Python使用Selenium+BeautifulSoup爬取淘宝搜索页
2018/02/24 Python
python 判断linux进程,并杀死进程的实现方法
2019/07/01 Python
python基于递归解决背包问题详解
2019/07/03 Python
简单了解Java Netty Reactor三种线程模型
2020/04/26 Python
Wiggle新西兰:自行车、跑步、游泳
2020/05/06 全球购物
葬礼司仪主持词
2014/03/31 职场文书
生物学专业求职信
2014/07/23 职场文书
群众路线调研报告范文
2014/11/03 职场文书
2014财务年终工作总结
2014/12/08 职场文书
2015年城管个人工作总结
2015/05/15 职场文书
微信小程序实现拍照和相册选取图片
2021/05/09 Javascript
详解Python生成器和基于生成器的协程
2021/06/03 Python