首頁>Club>
4
回覆列表
  • 1 # PandaAy

    一般所說的左連線,外連線是指左外連線,右外連線。做個簡單的測試你看吧。

    先說左外連線和右外連線:

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

  • 中秋節和大豐收的關聯?
  • 張賢勝&金泫雅Trouble maker完整版歌詞?