SQL中的INNER JOIN和JOIN有什麼區別

2021-06-17 17:39:36 字數 3017 閱讀 6609

table a

aid adate

1 a1

2 a2

3 a3

tableb

bid bdate

1 b1

2 b2

4 b4

兩個表a,b相連線,要取出id相同的字段

select * from a inner join b on a.aid = b.bid這是僅取出匹配的資料.

此時的取出的是:

1 a1 b1

2 a2 b2

那麼left join 指:

select * from a left join b on a.aid = b.bid

首先取出a表中所有資料,然後再加上與a,b匹配的的資料

此時的取出的是:

1 a1 b1

2 a2 b2

3 a3 空字元

同樣的也有right join

指的是首先取出b表中所有資料,然後再加上與a,b匹配的的資料

此時的取出的是:

1 a1 b1

2 a2 b2

4 空字元 b4

left join 或 left outer join。

左向外聯接的結果集包括 left outer 子句中指定的左表的所有行,而不僅僅是聯接列所匹配的行。如果左表的某行在右表中沒有匹配行,則在相關聯的結果集行中右表的所有選擇列表列均為空值

二. left join/right join/inner join操作演示

表a記錄如下:

aid anum

1 a20050111

2 a20050112

3 a20050113

4 a20050114

5 a20050115

表b記錄如下:

bid bname

1 2006032401

2 2006032402

3 2006032403

4 2006032404

8 2006032408

實驗如下:

1. left join

sql語句如下:

select * from a

left join b

on a.aid = b.bid

結果如下:

aid anum bid bname

1 a20050111 1 2006032401

2 a20050112 2 2006032402

3 a20050113 3 2006032403

4 a20050114 4 2006032404

5 a20050115 null null

(所影響的行數為 5 行)

結果說明:

left join是以a表的記錄為基礎的,a可以看成左表,b可以看成右表,left join是以左表為準的.

換句話說,左表(a)的記錄將會全部表示出來,而右表(b)只會顯示符合搜尋條件的記錄(例子中為: a.aid = b.bid).

b表記錄不足的地方均為null.

2. right join

sql語句如下:

select * from a

right join b

on a.aid = b.bid

結果如下:

aid anum bid bname

1 a20050111 1 2006032401

2 a20050112 2 2006032402

3 a20050113 3 2006032403

4 a20050114 4 2006032404

null null 8 2006032408

(所影響的行數為 5 行)

結果說明:

仔細觀察一下,就會發現,和left join的結果剛好相反,這次是以右表(b)為基礎的,a表不足的地方用null填充.

3.inner join

sql語句如下:

select * from a

innerjoin b

on a.aid = b.bid

結果如下:

aid anum bid bname

1 a20050111 1 2006032401

2 a20050112 2 2006032402

3 a20050113 3 2006032403

4 a20050114 4 2006032404

結果說明:

很明顯,這裡只顯示出了 a.aid = b.bid的記錄.這說明inner join並不以誰為基礎,它只顯示符合條件的記錄.

sql聯合查詢inner join

聯合查詢 語法 select from table 1 inner join table 2 on table 1.field table 2.field where inner join 等值連線,返回兩個表中聯合字段相等的行 其中field欄位如果不是數字,這些欄位的資料型別必須相同,並且包含同...

SQL語句中 INNER JOIN的用法!

一 sql語句中 inner join的用法?1.inner join的作用?可以在兩個或者更多的表中獲取結果,得出一張新錶。隱式內連線 表一 car 購物車 表二 user 使用者 發現兩張表都有uid 這一列 通過car uid user uid 這一橋梁,將兩張表合併。合併方法 user.ni...

inner join 各種連線 SQL語句

sql inner join關鍵字表示在表中存在至少乙個匹配時,inner join 關鍵字返回行。sql inner join關鍵字表示在表中存在至少乙個匹配時,inner join 關鍵字返回行。1 連線兩個資料表的用法 from member inner join membersort on ...