一般所說的左連接,外連接是指左外連接,右外連接。做個簡單的測試你看吧。
先說左外連接和右外連接:
[TEST1@orcl#16-12月-11] SQL>select * from t1;
ID NAME
---------- --------------------
1 aaa
2 bbb
[TEST1@orcl#16-12月-11] SQL>select * from t2;
ID AGE
---------- ----------
1 20
3 30
左外連接:
[TEST1@orcl#16-12月-11] SQL>select * from t1 left join t2 on t1.id=t2.id;
ID NAME ID AGE
---------- -------------------- ---------- ----------
1 aaa 1 20
2 bbb
右外連接:
[TEST1@orcl#16-12月-11] SQL>select * from t1 right join t2 on t1.id=t2.id;
ID NAME ID AGE
---------- -------------------- ---------- ----------
1 aaa 1 20
3 30
從上面的顯示你可以看出:左外連接是以左邊的表為基準。通俗的講,先將左邊的表全部顯示出來,然后右邊的表id與左邊表id相同的記錄就“拼接”上去,比如說id為1的記錄。如果沒有匹配的id,比如說t1中id為2的t2中就沒有。那邊就以null顯示。
右外連接過程正好相反。
再看內連接:
[TEST1@orcl#16-12月-11] SQL>select * from t1 inner join t2 on t1.id=t2.id;
ID NAME ID AGE
---------- -------------------- ---------- ----------
1 aaa 1 20
看到沒有? 只有一條記錄。內連接就是只取出符合過濾條件的記錄 也就是t1.id=
t2.id
那么符合t1.id=t2.id
的記錄只有id=1這一條,所以只顯示一條。 不像外連接,是將你作為基準的表(左外連接就是左邊表為基準,右外連接就是右邊表為基準)的所有行都顯示出來。綜上所述,你應該能明白了吧?如果不明白請留言。