创建高级联结

可以使用表别名

自联结

SELECT prod_id,prod_name FROM products WHERE vend_id IN
(SELECT vend_id FROM products WHERE prod_id =’DTNTR’)
SELECT p1.prod_id,p1.prod_name FROM products p1 ,products p2
WHERE p1.vend_id = p2.vend_id AND p2.prod_id =’DTNTR’
创建高级联结 - 图1

自然联结

自然联结排除多次出现,使每个列只返回一次
内部联结一般都是自然联结

外部联结

  • 左联结
  • 右联结

外部联结就是包含表中没有关联的行,需要指定是左联结还是右联结
SELECT customers.cust_id,orders.order_num
FROM customers LEFT OUTER JOIN orders
ON customers.cust_id = orders.cust_id
创建高级联结 - 图2
SELECT customers.cust_id,orders.order_num
FROM customers RIGHT OUTER JOIN orders
ON customers.cust_id = orders.cust_id

使用带聚集函数的联结

注意事项

使用联结注意要有联结条件(on)