开刷
最近要准备开始刷LeetCode上关于SQL部分的练习题了。相信很多人是知道LeetCode的,毕竟太多互联网公司是从上面抽题目来考察面试者,尤其是算法相关的题目,它就像是一个庞大的题库。而作为打工人的我们,能做的就是多加练习,提升的能力
LeetCode上面除了算法相关,也有很多SQL的题,评论区的作者们提供了很多优秀的方法和思路;希望自己在本次LeetCode-SQL的连载之后,不管是将来的面试或平时写SQL的时候能够更加得心应手。将自己的练习公布出来,错误的地方希望大家批评指正提供更加优秀的思路,说不定对大家会有所帮助。
LeetCode-175-组合两个表
题目的具体描述如下:
答案
- 左联结(left join),联结结果保留左表的全部数据
- 右联结(right join),联结结果保留右表的全部数据
- 内联结(inner join),取两表的公有数据
select
p.FirstName
,p.LastName
,a.City
,a.State
from Person as p
left join Address as a
on p.PersonId = a.PersonId
多种连接理解
下面是自己整理的一份关于SQL几种不同连接方式的图形,从连接的语法和结果上进行了可视化展示,方便读者理解不同连接的内在含义,作为一份学习备忘录。
- left join:只取左表中的内容
- right join:只取右表中的内容
- inner join:取两个表相同的部分
MySQL中本身是不支持全连接full (outer) join的,可以通过关键词union来实现