本系列为自己学习时的笔记及心得体会,转载请注明出处。
为了使得数据库可伸缩性好,我们将数据分解为多个表存储。但这样可能导致检索较麻烦,我们可以使用联结(join),用来在一条SELECT语句中关联表。
1、创建联结
select vend_name,prod_name,prod_price
FROM Vendors,Products
WHERE Vendors.vend_id=products.vend_id
如上语句,通过vend_id将vendors表和products表联结。where子句作为过滤条件,将第一个表中的每一行与第二个表中的每一行配对。
2、内联结
上述的SQL也可通过 JOIN 来筛选:
select vend_name,prod_name,prod_price
FROM Vendors INNER JOIN Products
ON Vendors.vend_id=products.vend_id
3、联结多个表
SQL不限制一条SELECT联结多个表。如:
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的所有顾客”,可使用联结将SQL写为: