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存储时间出现不一致的问题
Apr 28 MySQL
MySQL中你可能忽略的COLLATION实例详解
May 12 MySQL
一文读懂navicat for mysql基础知识
May 31 MySQL
MySQL系列之九 mysql查询缓存及索引
Jul 02 MySQL
一文搞懂MySQL索引页结构
Feb 28 MySQL
一条慢SQL语句引发的改造之路
Mar 16 MySQL
数据分析数据库ClickHouse在大数据领域应用实践
Apr 03 MySQL
Mysql查询时间区间日期列表,不会由于数据表数据影响
Apr 19 MySQL
MySQL 数据表操作
May 04 MySQL
Mysql中常用的join连接方式
May 11 MySQL
MySQL脏读,幻读和不可重复读
May 11 MySQL
MySQL索引失效十种场景与优化方案
May 08 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实现变色验证码实例
2014/01/06 PHP
php简单实现单态设计模式的方法分析
2017/07/28 PHP
laravel5.6框架操作数据curd写法(查询构建器)实例分析
2020/01/26 PHP
js的闭包的一个示例说明
2008/11/18 Javascript
jquery $.ajax入门应用一
2008/11/19 Javascript
JavaScript 设计模式 安全沙箱模式
2010/09/24 Javascript
js保存当前路径(cookies记录)
2010/12/14 Javascript
简单了解Backbone.js的Model模型以及View视图的源码
2016/02/14 Javascript
Markdown+Bootstrap图片自适应属性详解
2016/05/21 Javascript
jQuery操作json常用方法示例
2017/01/04 Javascript
jQuery插件版本冲突的处理方法分析
2017/01/16 Javascript
微信小程序实现实时圆形进度条的方法示例
2017/02/24 Javascript
微信小程序本地缓存数据增删改查实例详解
2017/05/24 Javascript
Javascript中 toFixed四舍六入方法
2017/08/21 Javascript
MUI 实现侧滑菜单及其主体部分上下滑动的方法
2018/01/25 Javascript
vue移动端弹框组件的实例
2018/09/25 Javascript
thinkjs微信中控之微信鉴权登陆的实现代码
2019/08/08 Javascript
Vue程序化的事件监听器(实例方案详解)
2020/01/07 Javascript
es6 for循环中let和var区别详解
2020/01/12 Javascript
Python迭代器和生成器定义与用法示例
2018/02/10 Python
python 编码规范整理
2018/05/05 Python
Python3用tkinter和PIL实现看图工具
2018/06/21 Python
python求质数的3种方法
2018/09/28 Python
Python爬取成语接龙类网站
2018/10/19 Python
Python使用Pandas库常见操作详解
2020/01/16 Python
美国大尺码女装零售商:TORRID
2016/10/01 全球购物
线程问题:wait()方法是定义在哪个类里面
2015/07/07 面试题
舞蹈专业大学生职业规划范文
2014/03/12 职场文书
监察建议书格式
2014/05/19 职场文书
生产车间标语
2014/06/11 职场文书
创先争优活动党员公开承诺书
2014/08/29 职场文书
成都人事代理协议书
2014/10/25 职场文书
生产现场禁烟通知
2015/04/23 职场文书
团队拓展训练感想
2015/08/07 职场文书
初中地理教学反思
2016/02/19 职场文书
python3 sqlite3限制条件查询的操作
2021/04/07 Python