【MySQL必知必会】第16章:高级联结

除了内联结之外还有其他主要的两种联结方式,分别是:

  • 自联结
  • 外联结

16.1 自联结

自联结指的是:在查询数据时需要进行对自身连接,因此为了出现命名的二义性而为表定义别名后所进行连接:

SELECT p1.prod_id, p1.prod_name
FROM products AS p1, products AS p2
WHERE p1.vend_id = p2.vend_id
    AND p2.prod_id = 'DTNTR';
  • 这里对同一个表进行两次不同别名定义,从而对自身进行连接

16.2 外联结

外联结是指:包含了再相关表中没有关联的行的联结操作

一般而言,对A、B表的外联结主要有以下方式:

  • 左联结:A LEFT OUTER JOIN B(根据左边的表来匹配,即A表有、B表有返回值,A表有、B表没有返回NULL
  • 右联结:A RIGHT OUTER JOIN B(根据右边的表来匹配,即B表有、A表有返回值,B表有、A表没有返回NULL
SELECT customers.cust_id,
        order.order_num
FROM customers LEFT OUTER JOIN orders
ON customers.cust_id = order.cust_id;

16.3 联结使用的注意事项

  • 注意所使用的联结类型,不同类型的联结返回的结果不同
  • 保证联结条件的正确性
  • 虽然一个联结可以包含多个表,每个联结液可以采用不同的联结类型;但是在一起使用使最好先分别测试,使Debug会更加简单

你可能感兴趣的:(【MySQL必知必会】第16章:高级联结)