zoukankan      html  css  js  c++  java
  • MySQL必知必会笔记:组合查询


    可UNION操作符来组合数条SQL语句。

    1.使用UNION

    UNION的使用很简单,所需做的只是给出每条SELECT语句,在各条语句之间放上关键字UNION。
    输入
    SELECT vend_id,prod_id,prod_price FROM products WHERE prod_price <= 5 UNION SELECT vend_id,prod_id,prod_price FROM products WHERE vend_id IN (1001,1002);
    输出

    第一条SELECT检索不高于5的所有物品,第二条SELECT使用IN找出供应商1001和1002生产的所有物品。UNION指示MySQL执行两条SELECT语句,并把输出组合成单个查询结果集。

    2.包含或取消重复的行

    如果分别执行以上两条SELECT语句,那么第一条SELECT返回4行,第二条返回5行,但是使用UNION组合了两条SELECT语句之后,只返回了8行而不是9行。这是UNION的默认行为,但是如果需要,也可以改变:使用UNION ALL,而不是UNION。
    输入
    SELECT vend_id,prod_id,prod_price FROM products WHERE prod_price <= 5 UNION ALL SELECT vend_id,prod_id,prod_price FROM products WHERE vend_id IN (1001,1002);
    输出

    使用UNION ALL,MySQL不取消重复的行,因此这里出现了9行。

    3.对组合查询结果排序

    在用UNION组合查询时,只能使用一条ORDER BY子句,它必须出现在最后一条SELECT语句之后。
    输入
    SELECT vend_id,prod_id,prod_price FROM products WHERE prod_price <= 5 UNION SELECT vend_id,prod_id,prod_price FROM products WHERE vend_id IN (1001,1002) ORDER BY vend_id,prod_price;
    输出

  • 相关阅读:
    2016年10月30日表单标签与样式表分类和选择器
    2016年10月29日常用标签与表格
    2016年10月28日网页属性和通用标签
    10月27日体会目标
    字符串学习笔记
    [51nod1789] 跑得比谁都快
    [洛谷9月月赛]签到题
    [LUOGU2730] 魔板
    [SCOI2009]迷路
    [51nod1074] 约瑟夫问题 V2
  • 原文地址:https://www.cnblogs.com/aaaazzzz/p/13063047.html
Copyright © 2011-2022 走看看