mysql的jion

來源:互聯網
上載者:User

標籤:

文法:FROM table1 LEFT JOIN table2 ON table1.field1 compopr table2.field2  
說明:table1, table2參數用於指定要將記錄組合的表的名稱。 
   field1, field2參數指定被聯結的欄位的名稱。且這些欄位必須有相同的資料類型及包含相同類型的資料,但它們不需要有相同的名稱。
   compopr參數指定關係比較子:"=", "<", ">", "<=", ">=" 或 "<>"。 

以下兩個表
表A記錄如下:                                 表B記錄如下: 
aID        aNum               bID        bName
1           a201501                           1            b201601
2           a201502              2            b201602
3           a201503              3            b201603
4           a201504              4            b201604
5           a201505            8            b201608

1.left join(左聯結) 

select * from a left join b on a.aID = b.bID

結果如下: 
aID        aNum                      bID           bName 
1            a201501             1               b201601 
2            a201502             2               b201602 
3            a201503             3               b201603 
4            a201504             4               b201604 
5            a201505             NULL       NULL 

結果說明: 
        left join是以A表的記錄為基礎的,A可以看成左表,B可以看成右表,left join是以左表為準的. 
換句話說,左表(A)的記錄將會全部表示出來,而右表(B)只會顯示符合搜尋條件的記錄(例子中為: A.aID = B.bID). 
B表記錄不足的地方均為NULL. 

2.right join(右聯結) 

select * from a right join b on a.aID = b.bID

結果如下: 
aID        aNum                      bID           bName 
1            a201501             1               b201601 
2            a201502             2               b201602 
3            a201503             3               b201603 
4            a201504             4               b201604 
NULL      NULL           8               a201508        

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

3.inner join(相等聯結或內聯結) 

select * from a innner join b on a.aID = b.bID

等同於以下SQL句: 

select * from a,b where a.aID = b.bID

結果如下: 
aID        aNum                      bID           bName 
1            a201501             1               b201601 
2            a201502             2               b201602 
3            a201503             3               b201603 
4            a201504             4               b201604 

結果說明: 
        很明顯,這裡只顯示出了 A.aID = B.bID的記錄.這說明inner join並不以誰為基礎,它只顯示合格記錄.


mysql的jion

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.