美文网首页我爱编程
【MySQL必知必会】第16章:高级联结

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

作者: 100gle | 来源:发表于2018-04-09 16:38 被阅读18次

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

    • 自联结
    • 外联结

    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章:高级联结

        本文链接:https://www.haomeiwen.com/subject/gbvihftx.html