原文:SQL 查詢條件放在LEFT OUTER JOIN 的ON語句后與放在WHERE中的區別

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

2014-03-12 11:32 1 6180 推薦指數:

查看詳情

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

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

Sun Jan 01 00:29:00 CST 2017 0 2594
SQLjoin連接查詢條件放在onwhere區別

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

Sat Jun 22 04:05:00 CST 2019 0 6227
SQL條件放在onwhere區別

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

Sat Jan 18 00:12:00 CST 2014 2 8446
Hive SQL查詢left join下on條件where條件區別

先給個結論: 總結:Hive SQL LEFT JOIN 單獨針對左表的過濾條件必須放在WHERE上,放在ON上的效果是不可預期的,單獨針對右表的查詢條件放在ON上是先過濾右表,再和左表聯表,放在WHERE條件上則是先聯表再過濾,語義上存在差別。 補充:對於MYSQLLEFT JOIN ...

Tue Mar 22 01:35:00 CST 2022 0 1149
MySQL條件放在where后面與放在on后面的區別

假設有兩種表:test_on_position表和address表,address表存放地址,test_on_position存放會員及其常用的地址,數據如下: address表: test_on_position表: 1. left join 條件where后面 運行 ...

Sat Aug 25 03:42:00 CST 2018 0 6231
論《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