• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    详解mysql 组合查询

    使用UNION

    多数SQL查询都只包含一个或多个表中返回数据的单条SELECT语句。MySQL也允许执行多个查询(多条SELECT语句),并将结果作为单个查询结果集返回。这些组合查询通常称为并(union)

    有两种情况需要使用组合查询:

    组合查询和多个WHERE条件:多数情况下,组合相同表的两个查询完成的工作与具有多个WHERE子句条件的单条查询完成的工作相同。

    可用UNION操作符来组合数条SQL查询,所需要做的就是给出每条SELECT语句,在各条语句之间放上关键字UNION

    例如:

    ​假设需要价格小于等于5的所有物品的一个列表,而且还想包括供应商1001和1002生产的所有物品,当然可以利用WHERE子句来完成,不过这里我们使用UNION

    SELECT vend_id, prod_id, prod_price FROM products WHERE prod_price = 5;

    SELECT vend_id, prod_id, prod_price FROM products WHERE vend_id IN (1001, 1002);

    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 vend_id, prod_id, prod_price FROM products WHERE prod_price = 5 OR vend_id IN (1001, 1002);

    UNION规则

    包含或取消重复的行

    UNION会从查询的结果集中自动去除重复的行,如果想返回所有匹配行,可使用UNION ALL

    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);
    

    对组合查询结果排序

    SELECT语句的输出用ORDER BY子句排序,在用UNION组合查询时,只能使用一条ORDER BY子句。它必须出现在最后一条SELECT语句之后。不允许使用多条ORDER BY子句。

    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;

    以上就是详解mysql 组合查询的详细内容,更多关于mysql 组合查询的资料请关注脚本之家其它相关文章!

    您可能感兴趣的文章:
    • 详解MySQL子查询(嵌套查询)、联结表、组合查询
    • MySQL按小时查询数据,没有的补0
    • 详解MySQL的sql_mode查询与设置
    • MySQL 子查询和分组查询
    • MySQL 分组查询和聚合函数
    • Mysql 查询JSON结果的相关函数汇总
    • MySQL 查询的排序、分页相关
    • MySql查询时间段的方法
    • MySQL中基本的多表连接查询教程
    • MySQL里面的子查询实例
    上一篇:Mysql优化神器(推荐)
    下一篇:详解MySQL 数据分组
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    详解mysql 组合查询 详解,mysql,组合,查询,详解,