SQL中JOIN操作詳解

2021-08-31 20:48:42 字數 1163 閱讀 8405

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

左連線where只影響右表,右連線where只影響左表。

join分類:left join、right join、inner join、full join

select * from tbl1 left join tbl2 where tbl1.id = tbl2.id

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

簡言之,left join影響到的是右邊的表。

select * from tbl1 right join tbl2 where tbl1.id = tbl2.id

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

簡言之,right join影響到的是左邊的表。

select * from tbl1 inner join tbl2 on tbl1.id = tbl2.id

功能和select * from tbl1,tbl2 where tbl1.id=tbl2.id相同(隱性連線)。

內連線後的檢索結果是顯示tbl1和tbl2中都滿足where條件的資料。

簡言之,inner join同時影響兩張表。

select * from tbl1 full join tbl2 on tbl1.id = tbl2.id

全連線後的檢索結果是兩張表的資料都顯示,對於不存在的行也會返回。

下面是一些sql說明:

(1)where子句中使用的連線語句,被稱為隱性連線。join……on子句產生的連線,被稱為顯性連線。where 和inner join產生的連線關係,沒有本質區別,結果也一樣。但是,隱性連線隨著資料庫語言的規範和發展,已經逐漸被淘汰,比較新的資料庫語言基本上已經拋棄了隱性連線,全部採用顯性連線了。

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

(3)join可以分主次表,外聯接有三種型別:完全外聯,左聯,右聯。

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

SQL中join操作後面的on與where的區別

join關鍵字的作用是將多個表按一定的條件聯合起來,從而可以實現從多個表中獲取資料 在join後面可以接on條件和where條件,在這裡我主要就是說這兩者之間的差別 建立兩張簡單的用來測試的表並新增資料,如下所示,一張表名為id name,另一張表名為id age 首先看看不新增條件 t2.age ...

SQL的各種連線Join詳解

sql join 子句用於把來自兩個或多個表的行結合起來,基於這些表之間的共同字段。最常見的 join 型別 sql inner join 簡單的 join sql left join sql right join sql full join,其中前一種是內連線,後三種是外鏈結。假設我們有兩張表,t...

SQL的各種連線Join詳解

sql join 子句用於把來自兩個或多個表的行結合起來,基於這些表之間的共同字段。最常見的 join 型別 sql inner join 簡單的 join sql left join sql right join sql full join,其中前一種是內連線,後三種是外鏈結。假設我們有兩張表,t...