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子句,但是連線同乙個表的時候,注意要定義別名,否則產生錯誤!
inner join:理解為「有效連線」,兩張表中都有的資料才會顯示;
left join:理解為「有左顯示」,比如on a.field=b.field,則顯示a表中存在的全部資料及a//b中都有的資料,a中有、b沒有的資料以null顯示
right join:理解為「有右顯示」,比如on a.field=b.field,則顯示b表中存在的全部資料及a//b中都有的資料,b中有、a沒有的資料以null顯示
full join:理解為「全連線」,兩張表中所有資料都顯示,實際就是inner +(left-inner)+(right-inner)
3 .join可以分主次表 外聯接有三種型別:完全外聯,左聯,右聯.
完全外聯包含兩張表的所有記錄.
左聯是以左邊的表為主,右邊的為輔,右聯則相反
4.一般要使得資料庫查詢語句效能好點遵循一下原則:
在做表與表的連線查詢時,大表在前,小表在
不使用表別名,通過字段字首區分不同表中的字段
查詢條件中的限制條件要寫在表連線條件前
盡量使用索引的字段做為查詢條件
左連線與右連線的區別
左聯時,會全顯左表的資料,如果右表沒有滿足的條件的資料為null.右聯時,會全顯右表的資料,如果左表沒有滿足的條件的資料為null.關於連線的簡單示例 測試資料 table a 字段 id a 12 table b 字段 id b 23 內連線 select from a join b on a.i...
左連線與右連線的區別
左連線與右連線的區別 分享分類 it資料 2006 02 21 16 12 左聯時,會全顯左表的資料,如果右表沒有滿足的條件的資料為null.右聯時,會全顯右表的資料,如果左表沒有滿足的條件的資料為null.關於連線的簡單示例 測試資料 table a 字段 id a 12 table b 字段 i...
內連線 左連線 左外連線 右連線的區別
一 測試例子 存在如下兩張表 年級與班級,表內容如下 班級表 二 內連線與自然連線 1 自然連線 對於select from gradeclass gc where gc.grade id in select id from grade 其結果如下圖 其查詢是把符合條件中的班級表內容全部查詢出來 而...