簡介
最近學習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;
其實一看也挺簡單的,記錄一下就當是學習筆記了,不喜勿噴。