mysql数据 并去重相加,mysql---union的用法

union的作用很简单用来合并两条sql的结果集

语法: SQL1 UNION SQL2

现有一张价格表

3ca4f870610fbcd7341b08cdafac84d3.png

要求:求出价格低于2000和价格高于3000的商品,不能用or和not between……and

思路:我们可以先求出低于2000的商品得到结果集1

再求出高于3000的商品得到结果集2

再利用union合并结果集1和结果集2

16ab7a75092d94305a33a6ade15cb64c.png

什么时候才允许使用union?

答:只要两个结果集的列数相同就可以使用,即使字段类型不相同,也可以使用。

2591f707ecbbf1a93eab1d6c59603eb0.png

第一个结果集有2列,第二个结果集有1列,运行后提示列数不一样的提示。

5d41e1d0ddbf248f824c1ddfc47750e6.png

列数相同,但字段类型不同。如goods_name是字符类型而goods_id是整形,但同样可以union。值得注意的是union后字段的名称以第一条SQL为准

关于union的排序

d95e088aae1fc617c04298228212e62d.png

可见内层排序没有发生作用,那现在试试在外层排序

1bfd3a9093aad9d9959bd273e9b80fb5.png

可见外层排序发生了作用

那是不是内层排序就没有用了呢,其实换个角度想想内层先排序,外层又排序,明显内层排序显得多余,所以MYSQL优化了SQL语句,不让内层排序起作用。要想内层排序起作用,必须要使内层排序的结果能影响最终的结果。如:加上limit

2b887d94362f33b8e4d3a17a0a5e8966.png

这样内层排序就起作用了

若两次有重复的行出现会怎样?

再创建2个表,

表A

28afe269a255b33548fcb793bd4986a8.png

表B

1fa2d77596874ea5c2ac75fe1e9e1cd5.png

表A和表B中有两条相同的记录‘王五’,‘小高’

现在使用union看一下结果

60b0a8869a82830a9e53430f3b613668.png

可以看到‘王五’和‘小高’只有一条记录,所以另一条记录被覆盖了,要想不被覆盖可以使用union all

d056009174135ba9166693536d94f3ab.png

如图所示,‘王五’和‘小高’没有被覆盖

MySQL UNION 与 UNION ALL 语法与用法

MySQL UNION 语法 MySQL UNION 用于把来自多个 SELECT 语句的结果组合到一个结果集合中.语法为: SELECT column,... FROM table1 UNION [ ...

MySQL全连接(Full Join)实现,union和union all用法

MySQL本身不支持你所说的full join(全连接),但可以通过union来实现 ,下面是一个简单测试,可以看看: mysql> CREATE TABLE a(id int,name cha ...

mysql union 与 union all 语法及用法

1.mysql   union  语法 mysql   union 用于把来自多个select  语句的结果组合到一个结果集合中.语法为: select  column,......from tabl ...

mysql union用法代码示例

MYSQL UNION 操作符 UNION 操作符用于合并两个或多个 SELECT 语句的结果集. 请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列.列也必须拥有相似的数据类型.同时 ...

union的用法

union的用法 union用来连接两个查询语句,把两个查询语句的查询结果合并起来,两个查询语句的查询字段个数必须一样,否则会出错,查询的字段可以不一样,类型也可以不一样,但是这样查询的意义不大,如果 ...

mysql子查询用法

mysql子查询用法 1 可以当值来用

select id from hcyuyin_share where id=(select id from hcyuyin_share li ...

mysql的DATE_FORMAT用法

DATE_FORMAT(date,format) date 参数是合法的日期.format 规定日期/时间的输出格式. mysql的DATE_FORMAT用法 %a 缩写星期名 %b 缩写月名 %c ...

mysql group by 用法解析(详细)

在使用mysql时,有时需要查询出某个字段不重复的记录,虽然mysql提供 有distinct这个关键字来过滤掉多余的重复记录只保留一条,但往往只用它来返回不重复记录的条数,而不是用它来返回不重记录的 ...

(转载)mysql group by 用法解析(详细)

(转载)http://blog.tianya.cn/blogger/post_read.asp?BlogID=4221189&PostID=47881614 mysql distinct 去重 ...

(转载)mysql中limit用法

(转载)http://hi.baidu.com/sppeivan/item/e45179375d6778c62f8ec221   mysql中limit用法 使用查询语句的时候,经常要返回前几条或者中 ...

随机推荐

动画--问题追踪:ImageView执行缩放动画ScaleAnimation之后,图像显示不全的问题。

http://www.bkjia.com/Androidjc/929473.html: 问题追踪:ImageView执行缩放动画ScaleAnimation之后,图像显示不全的问题., 问题:我有一个 ...

visual studio 设计器上出现蓝色的点和箭头

visual studio 设计器上出现蓝色的点和箭头: 突然发现打开visual studio 的时候出现了很多蓝色的点和箭头,解决办法是:按组合快捷键 Ctrl+R,Ctrl+W 或 Ctrl+E ...

4、JPA table主键生成策略(在JPA中table策略是首推!!!)

用 table 来生成主键详解 它是在不影响性能情况下,通用性最强的 JPA 主键生成器.这种方法生成主键的策略可以适用于任何数据库,不必担心不同数据库不兼容造成的问题. initialValue不起 ...

查看LOV对应查询语句的研究

一.获取当前会话id 1.方法一 tools: Help > About 2.方法二 打开个性化定义界面(如果没有权限,到系统配置文件设置中,查看是否是"隐藏诊断菜单"被设置 ...

RabbitMq C# .net 教程

本文转载来自 [http://www.cnblogs.com/yangecnu/p/Introduce-RabbitMQ.html]写的很详细. 文件安装包官方DEMO下载地址是:http://pan ...

PF部分代码解读

// 单个粒子数据结构 typedef struct { // 粒子状态 pf_vector_t pose; // 粒子权重 double weight; } pf_sample_t; // Info ...

nohup命令、setsid命令、Daemon(守护进程)简要梳理

nohup命令 当用户注销(logout)或者网络断开时,终端会收到 HUP(hangup)信号从而关闭其所有子进程.因此,我们的解决办法就有两种途径:要么让进程忽略 HUP 信号,要么让进程运行在新 ...

在VSCode中使用码云

在VSCode中使用码云 一.SSH公钥 使用SSH公钥可以让你在你的电脑和码云通讯的时候使用安全连接(Git的Remote要使用SSH地址) 链接 https://gitee.com/profile ...

SpringSecurity加密Salt

Spring Security 加密,默认加salt的输出为:password{salt};然后再对这个加salt后的密码加密存储. 源码如下: protected String mergePassw ...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值