MySQL----連接

來源:互聯網
上載者:User

標籤:size   outer   尋找   ;內   local   data   efault   有關   自身   

內部連接:    (1)標準的連接不設立連接條件(where語句),因為返回的結果數目是第一個表中行數×第二個表中行數,這種現象又叫笛卡兒積。    (2)內部連接設定了連接條件,只有滿足了連接條件的兩表對應行才會顯示出來,也就是顯示兩表關於連接條件的交集部分,如:
SELECT * FROM table1 INNER JOIN table2 ON table1.id=table2.id 
    (3)使用內部連接進行多表更新的例子如下:
UPDATE tdb_goods INNER JOIN tdb_goods_cate ON tdb_goods.goods_cate = tdb_goods_cate.goods_cate SET tdb_goods.goods_cate = tdb_goods_cate.id
    (4)使用內部連接進行多表顯示的例子如下:           兩張表連接顯示:
SELECT * from tdb_goods INNER JOIN tdb_goods_cate ON tdb_goods.goods_cate = tdb_goods_cate.id
           三張表連接顯示:
SELECT * from tdb_goods INNER JOIN tdb_goods_cate ON tdb_goods.goods_cate = tdb_goods_cate.id INNER JOIN tdb_goods_brand ON tdb_goods.brand_name = tdb_goods_brand.id;
  外部連接:   外部連接是在內部連接的基礎上,保留了沒有關聯的行,也就是說左右表欄位可以不滿足連接關聯條件,如:   左外部連接:       
SELECT * FROM table1 LEFT OUTER JOIN table2 ON table1.id=table2.id         
   右外部連接:     
SELECT * FROM table1 RIGHT OUTER JOIN table2 ON table1.id=table2.id
  左連接和右連接的區別就是:左連接是左表全顯示,右表顯示滿足連接條件的;右連接是右表全顯示,左表顯示滿足連接條件的。  內連接和外連接圖表顯示:      內連接為圖1,左連接為圖2,右連接為圖3:              自連接:     自連接是同一個資料表對自身進行連接,可用於無限分類的資料表設計(類似遞迴的思想),比如一個資料表如下:                   
          其中,parent_id表示該type的父類id號。          如果想查看所有父類對應的子類表,可用如下語句:   
SELECT p.type_id,p.type_name,s.type_name FROM tdb_goods_types AS p LEFT JOIN tdb_goods_types AS s ON s.parent_id = p.type_id;
        如果想查看所有父類對應的子類的數目,可用如下語句:
SELECT p.type_id,p.type_name,count(s.type_name) AS child_num FROM tdb_goods_types AS p LEFT JOIN tdb_goods_types AS s ON s.parent_id = p.type_id GROUP BY p.type_name ORDER BY p.type_id;
      如果想將上述尋找到的父類的子類數目作為欄位列,添加到這個資料表中,可做如下操作:
ALTER TABLE tdb_goods_types ADD child_num smallint default 0;
UPDATE tdb_goods_types AS t1 INNER JOIN
(SELECT p.type_id,p.type_name,count(s.type_name) AS child_num FROM tdb_goods_types AS p LEFT JOIN tdb_goods_types AS s ON s.parent_id = p.type_id group by p.type_name order by p.type_id) AS t2
ON t1.type_id = t2.type_id SET t1.child_num = t2.child_num;
           得到的結果如下:    

 

MySQL----連接

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.