Union:联合
作用:把2次或多次查询结果合并起来
案例(认识union):我想把商品价格大于5000元的和商品价格小于20元的商品都取出来
1.Select * from goods where shop_price < 20 or shop_price >5000;
2.我们用union将他们合并就是
Select * from goods where shop_price < 20
Select * from goods where shop_price > 5000
然后用个union将他们联合一下就行了
Select * from goods where shop_price < 20 union Select * from goods where shop_price > 5000;
 
Union的语法要求:
两次查询的列数一致
推荐:最好查询的每一列,相对应的列类型也一样。
 
可以来自于多张表
多次sql语句取出的列名可以不一致,此时以第1个sql的列名为准。
 
面试题:
有两张表
1张为
Ta
 
Id num
a   5
b  10
c  15
d  10
 
 
Tb
 
Id    num
b     5
c    10
d    20
e    99
 
想得到的结果
a,5
b,15
c,25
d,30
e,99
 
select id,sum(num) from (select * from ta union select * from tb) as tmp group by id;
 
如果不同的语句中取出的行,有完全相同(即每个列的值都相同,例上例中我把tb表的C的值也改为15,那就和ta表完全相同了),那么相同的行将会合并(即去重复)。
 
如果不去重复,可以加all来指定。
select * from ta union all select * from tb;
同理,我想完成上一题,现在我的C的值是15了,而不是10
Ta
 
Id num
a,  5
b,  10
c,  15
d,  10
 
 
Tb
 
Id   num
b    5
c    15
d    20
e    99
 
这个时候语句就是这样,在union后面加个all就行了
select id,sum(num) from (select * from ta union all select * from tb) as tmp group by id;
现在一个新题目:
想取出第4栏目的商品,价格降序排列,还想取出第5个栏目的商品,价格也降序排列,用union完成。
(select goods_id,cat_id,goods_name,shop_price from goods where cat_id = ) union (select goods_id,cat_id,goods-name,shop_price from goods where cat_id = ) order by shop_price;
如果子句中有order by,limit,需加小括号()括起来,推荐放到所有子句之后,即对最终合并后的结果来排序。
 
取第3个栏目价格前3高的商品和第4个栏目价格前2高的商品,用union来实现
(select goods_id,cat_id,goods_name,shop_price from goods where cat_id =  order by shop_price desc limit )union(select goods_id,cat_id,goods_name,shop_price from goods where cat_id =  order by shop_price desc limit );
在子句中,order by 配合limit使用才有意义,如果order by 不配合limit使用,会被语法分析器优化分析时,去除。

七、union联合的更多相关文章

  1. [办公自动化] 再读《让EXCEL飞》(从excel导入access数据时,union联合查询,数据源中没有包含可见的表格)

    一年多以前就买了@Mrexcel的<让excel飞>这本书.整体思路是利用access结合excel,大幅度提高数据分析效率. 最近又拿出来看了看.第十五章,比高级筛选更“高级”,P241 ...

  2. laravel4.2 union联合,join关联分组查询最新记录时,查询条件不对,解决方案

    需求: 分组联合查询,或者最新记录. 问题:  mysql分组的时候默认会查询第一条记录,存在gourp by时 order by 无效. 一般解决办法就是 ,select * from ( sele ...

  3. SqlSever基础 union 联合查询,厉害的并集 重复项只显示一个 两个查询结果并在一起后排序

    镇场诗:---大梦谁觉,水月中建博客.百千磨难,才知世事无常.---今持佛语,技术无量愿学.愿尽所学,铸一良心博客.------------------------------------------ ...

  4. [C语言 - 12] Union联合

    union Student {   int age;   char *name; } stu;   union只按照最长的数据成员分配控件,适用于有N个数据不会同时出现的情况,用以压缩空间.

  5. VBA+SQL transform pivot union联合查询的基础应用

    Sub 项目状态查询() '如果“项目状态”是未转运营那么实施状态是不能选择的,因为还没有实施.'如果“项目状态”选择状态后,那么项目名称里面只显示该状态的项目名称.如果“项目状态”选择的不是未转运营 ...

  6. 【转】Mysql联合查询union和union all的使用介绍

    Mysql的联合查询命令UNION和UNION ALL,总结了使用语法和注意事项,以及学习例子和项目例子,需要的朋友可以参考下 一.UNION和UNION ALL的作用和语法 UNION 用于合... ...

  7. 结构体struct 与 联合union

    1.C语言中的结构体 1.1 定义 结构体是由一系列相同或不同类型的变量组成的集合. struct 结构体名{               //struct为关键字,“结构体名”为用户定义的类型标识. ...

  8. Mysql联合查询UNION和UNION ALL的使用介绍

    UNION和UNION ALL的作用和语法 UNION 用于合并两个或多个 SELECT 语句的结果集,并消去表中任何重复行.UNION 内部的 SELECT 语句必须拥有相同数量的列,列也必须拥有相 ...

  9. MySQL进阶 9: 联合查询 - 查询语句1 union 查询语句2 union ...

    #进阶 : 联合查询 /* union 联合 合并: 将多条查询语句的结果合并成一个结果 语法: 查询语句1 union 查询语句2 union ... 应用语境: 要查询的结果来自多个表,但查询的列 ...

随机推荐

  1. 富文本编辑器Simditor

    文档地址:https://simditor.tower.im/docs/doc-usage.html 父组件: options: { placeHolder: 'this is placeHolder ...

  2. keeplived+lvs(主从热备+负载均衡)

    本次实验基于DR负载均衡模式(直接路由),设置一个VIP(Virtual IP)为192.168.1.225,用户只需要访问这个IP地址即可获得网页服务.其中,负载均衡主机为192.168.1.221 ...

  3. python3.5.3rc1学习六:画图

    # 可以设置颜色,g代表green, r代表red,y代表yellow,b代表blue# linewidth = 5,设置线条粗细 # label 设置线条名称 ##plt.plot(x,y,'b', ...

  4. LG3119 「USACO2015JAN」Grass Cownoisseur

    问题描述 LG3119 题解 显然,如果有个环,一定是全部走完的. 所以缩点,缩出一个 \(\mathrm{DAG}\) . 只能走一次反向,于是在正图和反图上各跑一次,枚举边,取 \(\mathrm ...

  5. Linux学习笔记-第12天 实用的一章

    关键词nmtui.nm-connection-editor./etc/sysconfig/network-scripts.iptables.firewalld.firewall-cmd.firewal ...

  6. django 报错Reverse for 'detail' with keyword arguments '{'pk': '2'}' not found. 1 pattern(s) tried: ['$post/(?P<pk>[0-9]+)/$']

    Django报错:Reverse for 'detail' with keyword arguments '{'pk': '2'}' not found. 1 pattern(s) tried: [' ...

  7. Python调用C的DLL(动态链接库)

    开发环境:mingw64位,python3.6 64位 参考博客: mingw编译dll: https://blog.csdn.net/liyuanbhu/article/details/426123 ...

  8. asp.net mvc 系统操作日志设计

    第一步.系统登录日志 通过signalr来管理用户的登录情况,并保存用户的登录记录. 第二步 通过mvc过滤器,来横切路由访问记录. 保存方式:通过httpclient异步请求webapi 数据通过m ...

  9. Paper | MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications

    目录 1. 故事 2. MobileNet 2.1 深度可分离卷积 2.2 网络结构 2.3 引入两个超参数 3. 实验 本文提出了一种轻量级结构MobileNets.其基础是深度可分离卷积操作. M ...

  10. orchard 中文文档 中英对照版

    ORCHARD CMS a free, open source, community-focused Content Management System built on the ASP.NET MV ...