MySQL左連線 右連線

2021-06-16 16:43:38 字數 2235 閱讀 3683

表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 

inner 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

結果說明: 

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

MySQL 左連線 右連線

表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 200...

MySQL左連線 右連線

表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 200...

MySQL左連線,右連線,等值連線

1.左連線 left join select m.columnname n.columnname from left table m left join right table n on m.columnname join n.columnname join and n.columnname whe...