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 视图(View)原理解析
May 19 MySQL
简单了解 MySQL 中相关的锁
May 25 MySQL
浅谈MySQL next-key lock 加锁范围
Jun 07 MySQL
SQL实现LeetCode(178.分数排行)
Aug 04 MySQL
mysql 索引合并的使用
Aug 30 MySQL
Arthas排查Kubernetes中应用频繁挂掉重启异常
Feb 28 MySQL
mysql使用instr达到in(字符串)的效果
Apr 03 MySQL
MySQL创建管理RANGE分区
Apr 13 MySQL
WINDOWS下安装mysql 8.x 的方法图文教程
Apr 19 MySQL
mysql中如何用命令创建联合唯一索引
Apr 20 MySQL
MySQL聚簇索引和非聚簇索引的区别详情
Jun 14 MySQL
MySQL中TIMESTAMP类型返回日期时间数据中带有T的解决
Dec 24 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输出表格的实现代码(修正版)
2010/12/29 PHP
php数组中删除元素的实现代码
2012/06/22 PHP
php Session存储到Redis的方法
2013/11/04 PHP
php实现遍历文件夹的方法汇总
2017/03/02 PHP
php+js实现的拖动滑块验证码验证表单操作示例【附源码下载】
2020/05/27 PHP
window.parent调用父框架时 ie跟火狐不兼容问题
2009/07/30 Javascript
js 内存释放问题
2010/04/25 Javascript
JS小功能(onmouseover实现选择月份)实例代码
2013/11/28 Javascript
JS获取屏幕,浏览器窗口大小,网页高度宽度(实现代码)
2013/12/17 Javascript
JS获取网页属性包括宽、高等等
2014/04/03 Javascript
js实现模拟计算器退格键删除文字效果的方法
2015/05/07 Javascript
你所不了解的javascript操作DOM的细节知识点(一)
2015/06/17 Javascript
js变形金刚文字特效代码分享
2015/08/20 Javascript
js如何判断访问是来自搜索引擎(蜘蛛人)还是直接访问
2015/09/14 Javascript
webpack开发跨域问题解决办法
2017/08/03 Javascript
vue+element UI实现树形表格带复选框的示例代码
2019/04/16 Javascript
小程序:授权、登录、session_key、unionId的详解
2019/05/15 Javascript
django中使用vue.js的要点总结
2019/07/07 Javascript
Vue-CLI项目中路由传参的方式详解
2019/09/01 Javascript
vue $set 给数据赋值的实例
2019/11/09 Javascript
原生js实现照片墙效果
2020/10/13 Javascript
NodeJS开发人员常见五个错误理解
2020/10/14 NodeJs
布同 Python中文问题解决方法(总结了多位前人经验,初学者必看)
2011/03/13 Python
python求斐波那契数列示例分享
2014/02/14 Python
Python编程之event对象的用法实例分析
2017/03/23 Python
python检索特定内容的文本文件实例
2018/06/05 Python
python实现停车管理系统
2018/11/30 Python
python在OpenCV里实现投影变换效果
2019/08/30 Python
基于TensorFlow常量、序列以及随机值生成实例
2020/01/04 Python
python turtle工具绘制四叶草的实例分享
2020/02/14 Python
Laura Geller官网:美国彩妆品牌
2018/12/29 全球购物
建筑学推荐信
2013/11/03 职场文书
工程专业应届生求职信
2014/02/19 职场文书
先进工作者事迹材料
2014/12/23 职场文书
给老婆的检讨书(搞笑版)
2015/05/06 职场文书
《游戏公平》教学反思
2016/02/20 职场文书