剛入行沒多久,我發現很多同事的sql 寫的關聯查詢都是 基本的 on a.id = b.id 就開始where了
但是后來知道了 on的執行是比較優先的,所以把where 內的 過濾都扔 on 上了 , 最近看書才知道原來這叫復合查詢
所以有個問題:
on 是不是和 where 一樣的寫法? 過濾資料量大的放前面 。
還有 我覺得on 完全可以代替where 了 ,現在我一用到關聯查詢,基本 where 里面都沒有東西了 ,不知道是不是走歪了
來求證一下觀點。。。
uj5u.com熱心網友回復:
頂頂!!!!!!!!!!!!!!!!!!!!1uj5u.com熱心網友回復:
on 有 left /right /inner join ,left / right 的情況和 where 是有區別的的兩表用 where 和 on 在閱讀上沒什么區別,但多表的情況,on 比 where 列清晰,更容易看出表之間的關系
至于 on 優先的說法,通常是不存在的,你可以通過 explain 查看執行計劃來對比兩種寫法
uj5u.com熱心網友回復:
on不就是將2張以上表連接成一張臨時表,然后在通過where過濾出最后結果嗎?uj5u.com熱心網友回復:
頂頂。。。。。轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/93830.html
標籤:MySQL
