本系列為自己學(xué)習(xí)時的筆記及心得體會,轉(zhuǎn)載請注明出處。
為了使得數(shù)據(jù)庫可伸縮性好,我們將數(shù)據(jù)分解為多個表存儲。但這樣可能導(dǎo)致檢索較麻煩,我們可以使用聯(lián)結(jié)(join),用來在一條SELECT語句中關(guān)聯(lián)表。
1、創(chuàng)建聯(lián)結(jié)
select vend_name,prod_name,prod_price
FROM Vendors,Products
WHERE Vendors.vend_id=products.vend_id
如上語句,通過vend_id將vendors表和products表聯(lián)結(jié)。where子句作為過濾條件,將第一個表中的每一行與第二個表中的每一行配對。
2、內(nèi)聯(lián)結(jié)
上述的SQL也可通過 JOIN 來篩選:
select vend_name,prod_name,prod_price
FROM Vendors INNER? JOIN Products
ON Vendors.vend_id=products.vend_id
3、聯(lián)結(jié)多個表
SQL不限制一條SELECT聯(lián)結(jié)多個表。如:
select vend_name,prod_name,prod_price,quantity
FROM Vendors ,products,orderitems
where Vendors.vend_id=products.vend_id?
and products.prod_id=orderItems.prod_id?
and order_num = 2020
回到上一篇中的例子“列出訂購物品 RGAN01的所有顧客”,可使用聯(lián)結(jié)將SQL寫為:
