创建联结
# 通过 Vendors.vend_id和Products.vend_id字段把Vendors和Products两张表联结起来
SELECT vend_name, prod_name, prod_price
FROM Vendors, Products
WHERE Vendors.vend_id = Products.vend_id;
注:为消除歧义,必须使用完全限定列名(用.分隔表名和列名)Vendors.vend_id = Products.vend_id。
叉联结
若丢失WHERE子句,则会形成笛卡尔积(检索出的行的数目将是第一个表中的行数乘以第二个表中的行数),也称叉联结。
内联结
#与前面的例子返回同样的结果,是ANSI SQL 规范首选的语法
SELECT vend_name, prod_name, prod_price
FROM Vendors
INNER JOIN Products ON Vendors.vend_id = Products.vend_id;
联结多个表
SELECT prod_name, vend_name, prod_price, quantity
FROM OrderItems, Products, Vendors
WHERE Products.vend_id = Vendors.vend_id
AND OrderItems.prod_id = Products.prod_id;
注:联结的表越多性能下降越快,尽量不要联结非必要的表。