天天看點

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

左外連接配接:

[[email protected]#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

右外連接配接:

[[email protected]#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顯示。

右外連接配接過程正好相反。

再看内連接配接:

[[email protected]#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這一條,是以隻顯示一條。 不像外連接配接,是将你作為基準的表(左外連接配接就是左邊表為基準,右外連接配接就是右邊表為基準)的所有行都顯示出來。

繼續閱讀