原文:SQL中條件放在on后與where后的區別

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

2014-01-17 16:12 2 8446 推薦指數:

查看詳情

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
SQLjoin連接查詢時條件放在onwhere區別

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

Sat Jun 22 04:05:00 CST 2019 0 6227
Decode放在where條件的新用法

今天遇到一種特殊情況的查詢,在查詢某表時,要通過判斷其中一個字段的值再用其他字段作為條件查詢,比如有3個字段 columnA,columnBm,columnC,columnA的值由兩個——分別是0和1,如果是0,那么我的where條件就是columnB=***,如果是1,where條件則是 ...

Thu Feb 12 03:04:00 CST 2015 0 4943
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
SQLSQLon條件where條件區別

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

Sun Sep 09 00:15:00 CST 2018 0 1224
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM