資料庫中的左串連(left join)和右串連(right join)區別

來源:互聯網
上載者:User

Left Join / Right Join /inner join相關

關於左串連和右串連總結性的一句話:

左串連 where隻影向右表,右串連where隻影響左表。

Left Join

select * from tbl1 Left Join tbl2 where tbl1.ID = tbl2.ID

左串連後的檢索結果是顯示tbl1的所有資料和tbl2 中滿足where 條件的資料。

簡言之 Left Join影響到的是右邊的表

Right Join

select * from tbl1 Right Join tbl2 where tbl1.ID = tbl2.ID

檢索結果是tbl2的所有 資料和tbl1中滿足where 條件的資料。

簡言之 Right Join影響到的是左邊的表。

inner join

select * FROM tbl1 INNER JOIN tbl2 ON tbl1.ID = tbl2.ID

功能和 select * from tbl1,tbl2 where tbl1.id=tbl2.id相同。

其他相關資料

1 .WHERE子句中使用的串連語句,在資料庫語言中,被稱為隱性串連。INNER JOIN……ON子句產生的串連稱為顯性串連。(其他JOIN參數也是顯性串連)WHERE 和INNER JOIN產生的串連關係,沒有本質區別,結果也一樣。但是!隱性串連隨著資料庫語言的規範和發展,已經逐漸被淘汰,比較新的資料庫語言基本上已經拋棄了隱 性串連,全部採用顯性串連了。

2 .無論怎麼串連,都可以用join子句,但是串連同一個表的時候,注意要定義別名,否則產生錯誤!

a> inner join:理解為“有效串連”,兩張表中都有的資料才會顯示left join:理解為“有左顯示”,比如on a.field=b.field,則顯示a表中存在的全部資料及a\\b中都有的資料,A中有、B沒有的資料以null顯示

b> right join:理解為“有右顯示”,比如on a.field=b.field,則顯示B表中存在的全部資料及a\\b中都有的資料,B中有、A沒有的資料以null顯示

c> full join:理解為“全串連”,兩張表中所有資料都顯示,實際就是inner +(left-inner)+(right-inner)

3 .join可以分主次表 外聯結有三種類型:完全外聯,左聯,右聯.
完全外聯包含兩張表的所有記錄.
左聯是以左邊的表為主,右邊的為 輔,右聯則相反

4.一般要使得資料庫查詢語句效能好點遵循一下原則:

在做表與表的串連查詢時,大表在前,小表在
不 使用表別名,通過欄位首碼區分不同表中的欄位
查詢條件中的限制條件要寫在表串連條件前
盡量使用索引的欄位做為查詢條件

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.