原文:SQL中join連接查詢時條件放在on后與where后的區別

數據庫在通過連接兩張或多張表來返回記錄時,都會生成一張中間的臨時表,然后再將這張臨時表返回給用戶。 在使用left jion時,on和where條件的區別如下: on條件是在生成臨時表時使用的條件,它不管on中的條件是否為真,都會返回左邊表中的記錄。 where條件是在臨時表生成好后,再對臨時表進行過濾的條件。這時已經沒有left join的含義 必須返回左邊表的記錄 了,條件不為真的就全部過濾掉 ...

2019-06-21 20:05 0 6227 推薦指數:

查看詳情

SQL 查詢條件放在LEFT OUTER JOIN 的ON語句放在WHERE區別

這兩種條件放置的位置不同很容易讓人造成混淆,以致經常查詢出莫名其妙的結果出來,特別是副本的條件與主表不匹配,下面以A,B表為例簡單說下我的理解。 首先要明白的是: 跟在ON 后面的條件是對參與左聯接的數據進行篩選,即在左聯接之前起作用。 跟在WHERE條件是對左聯接得到的結果集進行篩選 ...

Wed Mar 12 19:32:00 CST 2014 1 6180
SQL 查詢條件放在LEFT OUTER JOIN 的ON語句放在WHERE區別

這兩種條件放置的位置不同很容易讓人造成混淆,以致經常查詢出莫名其妙的結果出來,特別是副本的條件與主表不匹配,下面以A,B表為例簡單說下我的理解。 首先要明白的是: 跟在ON 后面的條件是對參與左聯接的數據進行篩選,即在左聯接之前起作用。 跟在WHERE ...

Sun Jan 01 00:29:00 CST 2017 0 2594
SQL條件放在onwhere區別

SQLon條件where條件區別 數據庫在通過連接兩張或多張表來返回記錄,都會生成一張中間的臨時表,然后再將這張臨時表返回給用戶。 在使用left jion,on和where條件區別如下: 1、 on條件是在生成臨時表使用的條件,它不 ...

Sat Jan 18 00:12:00 CST 2014 2 8446
Left Join 篩選條件在onwhere區別

a left join b 時限制條件在on, 相當於先篩選右連接表b的數據,再進行數據連接.形成最終的集合. 這時不影響a表相關字段的顯示. 執行結果如下: left join 時限制條件where , 相當於先進行a表和b表的連接,形成最終集合 ...

Fri Dec 14 18:05:00 CST 2018 0 1016
SQL join 連接 條件加在 on后面和 where區別

task 是用戶任務表,manageuser是用戶表,以left join 為參考: 此時主表是task,三條sql語句:注意區別。第一句無篩選條件,第二句篩選條件在on后面,第三句sql的篩選語句放到where 搜索結果如下 總結:where 會在最終結果篩選,on ...

Wed Nov 28 18:48:00 CST 2018 0 1068
論《LEFT JOIN條件放ON和WHERE區別

前兩天面試,遇到了一道題。說的是LEFT JOIN關聯表ON,WHERE后面跟條件區別。 當時確實有點懵逼~經常做這種left join,inner join連接,卻發現居然只是模糊的認識。 回到家,馬上開啟了“實踐是檢驗真理的唯一標准”模式。 三下五除二,建了兩張表嘗試 ...

Sun Jun 18 01:52:00 CST 2017 1 9600
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM