• mysql必知必会(十)联结表


    创建联结

    分别从商户表和产品表中查询出商户名字、产品名字、产品价格
    注意:在引用的列可能出现二义性时,必须是要完全限定列名(表名.列名)

    SELECT vend_name, prod_name, prod_price FROM vendors, products WHERE vendors.vend_id = products.vend_id ORDER BY vend_name, prod_name;
    

    内联结

    内联结:基于两个表之间的相等测试,所使用的联结称为内联结
    上述的联结方式也可以写作:

    SELECT vend_name, prod_name, prod_price FROM vendors INNER JOIN products ON vendors.vend_id = products.vend_id;
    

    左联结

    左联结:LEFT JOIN 关键字从左表(table1)返回所有的行,即使右表(table2)中没有匹配。如果右表中没有匹配,则结果为 NULL

    查询所有客户,包括那些没有订单的客户

    SELECT customers.cust_id, orders.order_num FROM customers LEFT OUTER JOIN orders ON customers.cust_id = orders.cust_id;
    

    右联结

    右联结:RIGHT JOIN 关键字从右表(table2)返回所有的行,即使左表(table1)中没有匹配。如果左表中没有匹配,则结果为 NULL

    从右边的表中选择所有行

    SELECT customers.cust_id, orders.order_num FROM customers RIGHT OUTER JOIN orders ON orders.cust_id = customers.cust_id;
    

    使用带聚集函数的联结

    查询所有客户以及每个客户所下的订单数

    SELECT customers.cust_name, customers.cust_id, COUNT(orders.order_num) AS num_ord FROM customers
    INNER JOIN orders ON customers.cust_id = orders.cust_id GROUP BY customers.cust_id;
    

  • 相关阅读:
    JavaScript快速入门-DOM对象
    JavaScript快速入门-ECMAScript对象介绍
    JavaScript快速入门-ECMAScript函数
    JavaScript快速入门-ECMAScript运算符
    [转] boost::function用法详解
    [转] [翻译]图解boost::bind
    [转] Git 分支
    [转] 多线程下变量-gcc原子操作 __sync_fetch_and_add等
    [转] Boost智能指针——scoped_ptr
    [转] linux下的c/c++调试器gdb
  • 原文地址:https://www.cnblogs.com/my_captain/p/16494656.html
Copyright © 2020-2023  润新知