Oracle細節之引數放在where前後的區別

2021-09-11 08:01:40 字數 922 閱讀 6313

本部落格記錄乙個細節,在使用sql left join時候,引數放在left join後面當條件,還是放在where後的區別

給出兩條sql:

tt.book_type = 『tips_type』,放在left join後面當條件

select tc.seq,

tc.tips_flag,

tc.is_valid,

tc.create_time,

tt.book_name tipstype

from t_tips_config tc

left join t_book tt

on tt.book_code = tc.tips_flag

and tt.book_type = 'tips_type'

tt.book_type = 『tips_type』,放在where後面當條件

select tc.seq,

tc.tips_flag,

tc.is_valid,

tc.create_time,

tt.book_name tipstype

from t_tips_config tc

left join t_book tt

on tt.book_code = tc.tips_flag

where tt.book_type = 'tips_type'

這兩種情況意義完全不一樣的,前者如果t_book沒有book_type = 'tips_type』的資料,整條sql還是可以查到資料的,只是t_book的引數沒查到而已,後者,一旦出現book_type = 'tips_type』沒有資料,那就整條sql都查不到資料,這樣是不合理的,因為業務需要查出t_tips_config的表,不然就不會用左連線了

這是乙個小細節,記錄一下

oracle練習之查詢1(where等)

清屏命令 命令列下 clear 檢視表結構 命令列下 desc dept 查詢所有列 select from dept 查詢指定列 select loc from dept 開啟顯示操作的時間 命令列下 set timing on 統計條數 select count from dept distin...

Oracle之Where子句中常用的運算子

sql select ename,job,sal,comm from emp where job salesman or job president and sal 1500 ename job sal comm allen salesman 1600.00 300.00 ward salesman...

oracle基本檔案之引數檔案

寫在前面 本來都不打算再寫關於oracle物理檔案結構的部落格了,原因是看到其他人都寫過,而且寫的很詳細,而我只是個初學者,在學習中還是參考他們的部落格,如果寫下去有點東施效颦,貽笑大方的趕腳。不過之後我仔細想了想,無論怎樣,我還是得寫下去,就當做是我的學習筆記而已,讓自己明白,雖然我很菜,可我一直...