溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Oracle里面的外連中where和on之后and有啥區別

發布時間:2020-08-09 17:03:37 來源:ITPUB博客 閱讀:424 作者:修辭立其誠 欄目:關系型數據庫

1、表做關聯的時候有些條件寫在where中,有些寫在on之后關聯條件的and中。那么有什么區別呢。

2、我們指導,表關聯一般分為兩種:內聯和外聯。

3、我們先來看內聯。

4、準備兩個表做連接。表A:test_tb_stid;表B:test_tb_stscore;

5、表A數據如下圖:

Oracle里面的外連中where和on之后and有啥區別

6、表B數據如下圖:

Oracle里面的外連中where和on之后and有啥區別

7、用紅色字段stid作為關聯條件

8、內聯,先把過濾條件放在and后:

select a.*,b.*
from test_tb_stid a
inner join test_tb_stscore b
on a.stid = b.stid
and a.stid = 2

9、結果,發現只出現一條:

Oracle里面的外連中where和on之后and有啥區別

10、把過濾條件放到where

Oracle里面的外連中where和on之后and有啥區別

11、發現內聯的時候,這個過濾條件放on之后的and和where沒有區別。

12、我們再看一下外聯。

Oracle里面的外連中where和on之后and有啥區別

發現雖然加了過濾條件,但是a表還是全量的。如果不加這個a.stid=1,應該會匹配出兩條出來,如下圖:

Oracle里面的外連中where和on之后and有啥區別

說明外聯的話:1、主表總是全量的。2、on之后的and條件只對結果內容產生影響,不對結果量產生影響。

13、過濾條件加到where上

Oracle里面的外連中where和on之后and有啥區別

直接就是對結果集產生影響了。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女