多表合并 你不知道的暗黑技巧

简介

最近学习sql,其实原来一直瞧不起觉得sql有什么难的,结果发现,你虽然能达到你想要的结果,但是效率比人家慢了一倍。

如果数据量再大个几十倍呢,那可就不是几百毫秒的差别了。

多表合并

先来看看我的写法:

select FirstName, LastName, City, State
from Person left join Address
on Person.PersonId=Address.PersonId;

我一看这也太简单了,结果用时
在这里插入图片描述
排名80%开外。唉~~ 静下心来

这里分享一个大佬的思路

作者:xksa
链接:https://leetcode-cn.com/problems/combine-two-tables/solution/joinji-ben-shi-yong-by-xksa/
来源:力扣(LeetCode)
其实说起来还是比较简单的,就是我们将表中的重复数据删掉,这样不光降低的表得数量,同时在做join操作的时候也会大大提高效率。

不过很多人知道怎么说,但是一到代码又发现有点模糊:

select  P.FirstName, P.LastName, AA.City, AA.State 
from Person P left join 
(select distinct PersonId, City, State from Address) AA 
on P.PersonId = AA.PersonId;

其实一看也挺简单的,记录一下就当是学习笔记了,不喜勿喷。

猜你喜欢

转载自blog.csdn.net/qq_40742298/article/details/105440507