MySQL連接表,mysql連接

來源:互聯網
上載者:User

MySQL連接表,mysql連接
連接SQL最強大的功能之一就是能在資料檢索查詢的執行中連接表。而連接表是基於關係表。理解關係表如下,假如由同一供應商生產的多種物品,在資料庫中需要儲存產品資訊,而在產品資訊的這一行不儲存供應商資訊,因為這些產品的供應商是同一個,所以在產品資訊這一行裡記錄一個唯一的供應商id就可以,供應商資訊單獨的儲存一個表,並且也用為一個的id記錄。這樣,產品表與供應商表就通過 共同的供應商id串連起來了。如下表所示:


在vendors表中,vend_id稱為主鍵,products表中的vend_id為外鍵。
為什麼要用連接表呢,將資料分解為多個表能夠更有效儲存,更方便的處理,並且具有更大的延展性。但是這些好處是有代價的。如果資料存放區在多個表中,怎麼樣用單條SELECT語句檢索出資料?答案是使用連接。簡單的說連接是一種機制,用來在一條SELECT語句中關聯表,因此稱之為連接。
下面的樣本最主要的地方就是 vendors.vend_id = products.vend_id, 在比較時是 從 vendors表中逐一拿出每一行,這個每一行與products表中的所有行進行比較,篩選出products表中的滿足條件的每一行。


此外連接表還可以用 INNER JOIN .. ON來表示,語句的作用與上面的樣本是一樣的:


連接多個表, 可以如下理解下例,WHERE的三個條件,第一個條件,產品表中的每一個產品都會有一個vend_id,所有這個條件不會過濾掉一些產品;第二個條件,處於訂單上的產品,應該是所有產品的一部分分;第三個條件,訂單編號為20005的產品;


mysql查詢3表串連查詢問題

select A.c1,B.c1,C.c1 from A left join B on A.c2=B.c2 left join C on A.c3=C.c3 where ...
 
教各位,mysql中連接表操作是個什原理?

集合運算中的笛卡爾積運算的基礎上加聯結條件加以篩選
 

相關文章

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.