一、left join on and 和where的區別
1、where是一個過濾器,篩選表中符合條件的記錄,從而形成新的表。而and和or只是表示多個條件必須同時成立或至少有一個條件成立;
2、left join on and和where的區別主要在表的連接方面。where子句在連接完成後再對記錄進行限制,而on子句直接在連接表時起到篩選的作用,相比之下效率更高;
3、使用left join on and,先完成普通的多表連接,再在連接表時做一些「限制」動作;而使用where則是連接表後再做過濾,即篩選符合條件的記錄。這麼說來,兩者相輔相成,筆者認為,在普通多表連接時,應該盡量避免使用where子句,而是在連接時用on子句完成篩選工作。
二、left join on多表關聯
在實際運用時,left join on語句通常用在多張數據表進行數據關聯的操作上,來實現從多表中篩選數據的效果。因為left join on可以將多個表的數據進行合併,並且能夠限定所篩選的數據,從而達到篩選數據的效果
SELECT * FROM table1 LEFT JOIN table2 ON table1.ID=table2.ID LEFT JOIN table3 ON table1.ID=table3.ID;
三、left join on where
通常我們用left join on語句來連接兩張表時,有可能其中一張表中的數據有缺失,而另一張表中的數據是完整的,這時候數據缺失的表使用left join on仍然會被獲取到,但獲取到的數據是空值。因此,需要再用where語句對獲取的數據進行限制或過濾,篩選所需要的內容
SELECT * FROM table1 LEFT JOIN table2 ON table1.ID=table2.ID WHERE table2.ID IS NOT NULL;
四、left join on and
left join on and語句可以實現兩種或者兩種以上的條件進行篩選,符合多個條件就會被篩選出來,而不只基於一個條件進行篩選。多個條件中的每個條件都必須適用
SELECT * FROM table1 LEFT JOIN table2 ON table1.ID=table2.ID AND table2.name='張三';
五、left join on用法
當我們需要在一個結果集中獲取兩個表格的內容時,左右連接(left join)語句很有用處
SELECT a.ID,a.name,b.sex FROM table1 a LEFT JOIN table2 b ON a.ID=b.ID;
六、 left join on三表關聯
left join on語句也可以連接三個表,以獲取不同表之間的數據
SELECT a.ID,a.name,b.position,c.salary FROM table1 a LEFT JOIN table2 b ON a.ID=b.ID LEFT JOIN table3 c ON a.ID=c.ID;
七、left join on多條件
left join on可以實現多條件篩選,在篩選數據過程中對多個欄位進行篩選。比如,篩選學生表(table1)和成績表(table2)中出生日期在1990年8月到1991年9月之間,且語文成績大於等於90分的學生信息
SELECT * FROM table1 LEFT JOIN table2 ON table1.ID=table2.ID AND table1.birthday>='1990-08-01' AND table1.birthday=90 AND table2.subject='語文';
總結
通過本次文章的闡述,我們了解到了left join on的基本語法和用法。left join on可以實現多表關聯,可以根據多個條件篩選數據。同時,我們也理解了left join on和where的區別,left join on where的用法,left join on and的用法等。只有深入了解和掌握了這些知識,才能讓我們更好地應用left join on,從而提升我們的編程水平和開發效率。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/238287.html