Notes:SQL文件

介绍MySQL中的组合查询

MySQL允许执行多个查询(多条SELECT语句),并将结果作为单个查询结果集返回。这些组合查询通常称为并或复合查询。

什么时候需要使用组合查询:

  • 在单个查询中从不同的表返回类似结构的数据;
  • 对单个表执行多个查询,按单个查询返回数据。

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

使用WHERE写法:

SELECT vend_id,prod_id,prod_price FROM products WHERE prod_price <= 5 OR vend_id IN (1001,1002);

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

UNION指示MySQL执行两条SELECT语句,并把输出组合成单个查询结果集。

UNION规则

  • UNION必须由两条以上的SELECT语句组成,语句之间用关键字UNION分割。
  • UNION中的每个查询必须包含相同的列、表达式或聚集函数(各个列不需要以相同的次序列出)。
  • 列数据类型必须兼容:类型不必完全相同,但必须是DBMS可以隐含地转换的类型。
  • 如果取出来的数据不需要去重,使用UNION ALL。

UNION与WHERE

UNION几乎总是完成与多个WHERE条件相同的工作。UNION ALL为UNION的一种形式,它完成WHERE完成不了的工作。如果确实需要每个条件的匹配行全部出现(包括重复行),则必须使用UNION ALL而不是WHERE。

对组合查询结果排序

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的UNION用法相关推荐

  1. mysql union result,【经验】Mysql的UNION用法解析及TP中写法

    最近也是在写项目中碰到的这个问题,需要将两个SELECT查询结果组合起来进行分组排序,想到了用union方法,用TP的union操作根本无法完成复杂的union操作,于是搜罗了一下,先说一下union ...

  2. mysql: union / union all / 自定义函数用法详解

    mysql: union / union all http://www.cnblogs.com/wangyayun/p/6133540.html mysql:自定义函数用法详解 http://www. ...

  3. mySql中union all 及max,ifnull用法

    mySql中union all 及max,ifnull用法 selectifnull(max(d.orderNum),0) totalNum,ifnull(max(d.money),0) totalM ...

  4. mysql union如何排序_Mysql中UNION用法与排序

    最近也是在写项目中碰到的这个问题,需要将两个SELECT查询结果组合起来进行分组排序,想到了用union方法,用TP的union操作根本无法完成复杂的union操作,于是搜罗了一下,先说一下union ...

  5. MySql数据库explain用法示例_mysql explain用法学习

    本节内容: mysql中explain用法 如果在select语句前放上关键词explain,mysql将解释它如何处理select,提供有关表如何联接和联接的次序. explain的每个输出行提供一 ...

  6. MySql的Explain用法

    MySql的Explain用法 explain执行计划 explain执行计划 使用EXPLAIN关键字可以模拟优化器执行SQL查询语句,从而知道MySQL是如何处理你的SQL语句的.分析你的查询语句 ...

  7. 【MySQL】explain 用法详解

    [MySQL]explain 用法详解   explain命令主要来查看SQL语句的执行计划,查看该SQL语句有没有使用索引,有没有做全表扫描等.它可以模拟优化器执行SQL查询语句,从而知道MySQL ...

  8. MySQL:讨人喜欢的 MySQL replace into 用法(insert into 的增强版)

    讨人喜欢的 MySQL replace into 用法(insert into 的增强版) 在向表中插入数据的时候,经常遇到这样的情况:1. 首先判断数据是否存在: 2. 如果不存在,则插入:3.如果 ...

  9. 【node】express中mysql的基本用法、连接池的使用、事务的回滚

    [node]express中mysql的基本用法.连接池的使用 安装mysql包 mysql的配置信息 mysql基本操作 查询mysql并渲染数据 mysql插入操作 首先在html页面写上< ...

最新文章

  1. Science Advances: 中科院微生物所叶健团队揭示双生病毒调控植物免疫平衡制约机制...
  2. MYSQL-RJWEB 博客学习
  3. BLE Mesh(2)—— 基本术语及含义
  4. [C++学习笔记](double*)malloc(n * sizeof(double));
  5. 线性规划与网络流24题●09方格取数问题13星际转移问题
  6. 网游服务器端设计思考:心跳设计
  7. 前端js文件合并三种方式
  8. 产品经理和开发打起来了
  9. 交互式python解释器_从python脚本中调用python交互式解释器
  10. java 正则表达式 数量
  11. Android Studio 3.4升级后的运行问题解决办法
  12. Python菜鸟入门:day09数据结构
  13. Visual FoxPro操作dbf时语句过长换行问题
  14. linux压缩文件zip,在 Linux 上压缩文件:zip 命令的各种变体及用法
  15. 吹气球-LintCode
  16. 探究空心超顺磁性四氧化三铁纳米微粒的制备方法-瑞禧
  17. 如何激发孩子的想象力_如何激发孩子的创造力,想象力?
  18. 解除封闭、寒假延长!多校发通知
  19. 赠书活动 | 万亿级市场:大家都能看到的机会谈不上机会
  20. Excel 2010 VBA 入门 138 添加选项卡和内置控件

热门文章

  1. NSA,放开那头魔兽!
  2. rgba背景是黑灰色html,IE8下兼容rgba颜色的半透明背景_html/css_WEB-ITnose
  3. python实现二维tensor对应列相同元素的个数
  4. selenium Cannot call non W3C standard command while in W3C mode解决
  5. 技术平台应用开发专题月 | 企业上云利器-YMS(Yon Middleware Service)
  6. Android的Activity生命周期以及模式
  7. iTunes备份在哪里,iTunes备份文件路径
  8. 深入浅出理解卷积运算
  9. 对数正态lognormal分布图像
  10. 计算机专业课程 视频教程