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