oracle中on與where的區別


1.在內連接即inner join中沒有區別,

2.在使用left jion時,on和where條件的區別如下:
1、on條件是在生成臨時表時使用的條件,它不管on中的條件是否為真,都會返回左邊表中的記錄
2、where條件是在臨時表生成好后,再對臨時表進行過濾的條件。這時已經沒有left
join的含義(必須返回左邊表的記錄)了,條件不為真的就全部過濾掉。

假設有兩張表:

表1

 

 表2:

select * from AAAA left join AAAAB on  AAAAB.ST_SIZE=AAAA.ST_SIZE

 

select * from AAAA left join AAAAB on( AAAAB.ST_SIZE=AAAA.ST_SIZE and AAAAB.ST_NAME='111' )

 

 

select * from AAAA left join AAAAB on(AAAAB.ST_SIZE=AAAA.ST_SIZE) where AAAAB.ST_NAME='111'

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM