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 表空间碎片的概念及相关问题解决
May 07 MySQL
MySQL 全文索引使用指南
May 25 MySQL
MySQL中VARCHAR与CHAR格式数据的区别
May 26 MySQL
MySQL外键约束(FOREIGN KEY)案例讲解
Aug 23 MySQL
MySQL数据库必备之条件查询语句
Oct 15 MySQL
mysql中int(3)和int(10)的数值范围是否相同
Oct 16 MySQL
基于MySql验证的vsftpd虚拟用户
Nov 07 MySQL
简单聊一聊SQL注入及防止SQL注入
Mar 23 MySQL
mysql使用instr达到in(字符串)的效果
Apr 03 MySQL
MySQL串行化隔离级别(间隙锁实现)
Jun 16 MySQL
mysql数据库隔离级别详解
Jun 16 MySQL
Mysql中的触发器定义及语法介绍
Jun 25 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
论坛头像随机变换代码
2006/10/09 PHP
PHP 递归效率分析
2009/11/24 PHP
ZF框架实现发送邮件的方法
2015/12/03 PHP
WordPress后台中实现图片上传功能的实例讲解
2016/01/11 PHP
JQuery 学习笔记 element属性控制
2009/07/23 Javascript
jquerymobile checkbox及时刷新才能获取其准确值
2012/04/14 Javascript
ie8模式下click无反应点击option无反应的解决方法
2014/10/11 Javascript
20个实用的JavaScript技巧分享
2014/11/28 Javascript
AngularJS 视图详解及示例代码
2016/08/17 Javascript
AngularJS入门教程之链接与图片模板详解
2016/08/19 Javascript
利用jQuery的动画函数animate实现豌豆发射效果
2016/08/28 Javascript
浅谈js继承的实现及公有、私有、静态方法的书写
2016/10/28 Javascript
基于jQuery制作小图标上下滑动特效
2017/01/18 Javascript
jQuery点击弹出层弹出模态框点击模态框消失代码分享
2017/01/21 Javascript
ES6学习教程之对象的扩展详解
2017/05/02 Javascript
Vue的MVVM实现方法
2017/08/16 Javascript
Mint UI 基于 Vue.js 移动端组件库
2017/11/07 Javascript
详解webpack自定义loader初探
2018/08/29 Javascript
使用VUE实现在table中文字信息超过5个隐藏鼠标移到时弹窗显示全部
2019/09/16 Javascript
微信小程序点击保存图片到本机功能
2019/12/13 Javascript
python实现代理服务功能实例
2013/11/15 Python
bpython 功能强大的Python shell
2016/02/16 Python
Python使用pyh生成HTML文档的方法示例
2018/03/10 Python
python实现windows倒计时锁屏功能
2019/07/30 Python
python异常处理和日志处理方式
2019/12/24 Python
python右对齐的实例方法
2020/07/05 Python
CSS3使用border-radius属性制作圆角
2014/12/22 HTML / CSS
澳大利亚优质葡萄酒专家:Vintage Cellars
2019/01/08 全球购物
英国手工制作的现代与经典的沙发和床:Love Your Home
2020/09/26 全球购物
工伤赔偿协议书范本
2014/04/15 职场文书
世界读书日的活动方案
2014/08/20 职场文书
公司离职证明标准格式
2014/11/18 职场文书
2014年学校体育工作总结
2014/12/08 职场文书
堂吉诃德读书笔记
2015/06/30 职场文书
合作合同协议书
2016/03/21 职场文书
原来实习报告是这样写的呀!
2019/07/03 职场文书