MySQL左連接右連接


先說左外連接和右外連接:
[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這一條,所以只顯示一條。 不像外連接,是將你作爲基準的表(左外連接就是左邊表爲基準,右外連接就是右邊表爲基準)的所有行都顯示出來。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章