sql中join語句區別

2021-07-24 05:33:09 字數 1749 閱讀 9629

表如下:

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.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並不以誰為基礎,它只顯示符合條件的記錄.

2. 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.

3. 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填充.

sql中的join語句

sql的join分為三種,內連線 外連線 交叉連線。以下先建2張表,插入一些資料,後續理解起來更方便一些。create table emp empno int,name char 20 depart int create table depart dpno int,dpname char 20 in...

sql語句之union與join的區別

union查詢 使用 union 可以將多個select語句的查詢結果組合起來。語法 select 欄位1,欄位2 from table1 union select 欄位1,欄位2 from table2 例 注意 1 union 關鍵字兩邊的select語句的字段數量是需要一致的,並不要求欄位名稱...

SQL 語句之Join複習

left join 左聯接 返回包括左表中的所有記錄和右表中聯結字段相等的記錄 right join 右聯接 返回包括右表中的所有記錄和左表中聯結字段相等的記錄 inner join 等值連線 只返回兩個表中聯結字段相等的行 a表 id姓名1張三 2李四3王五 b表 id成績190 270480 s...