1、表做關聯的時候有些條件寫在where中,有些寫在on之后關聯條件的and中。那么有什么區別呢。
2、我們指導,表關聯一般分為兩種:內聯和外聯。
3、我們先來看內聯。
4、準備兩個表做連接。表A:test_tb_stid;表B:test_tb_stscore;
5、表A數據如下圖:
6、表B數據如下圖:
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、結果,發現只出現一條:
10、把過濾條件放到where
11、發現內聯的時候,這個過濾條件放on之后的and和where沒有區別。
12、我們再看一下外聯。
發現雖然加了過濾條件,但是a表還是全量的。如果不加這個a.stid=1,應該會匹配出兩條出來,如下圖:
說明外聯的話:1、主表總是全量的。2、on之后的and條件只對結果內容產生影響,不對結果量產生影響。
13、過濾條件加到where上
直接就是對結果集產生影響了。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。