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

簡介

最近學習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;

其實一看也挺簡單的,記錄一下就當是學習筆記了,不喜勿噴。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章