组合多个查询

本文详细介绍了SQL中的UNION及其相关运算符UNION ALL、INTERSECT和EXCEPT的功能与用法,并通过实例展示了如何使用这些运算符来处理多个SELECT语句的结果集。
  • UNION

UNION子句/运算符用于将两个或者更多的 SELECT 语句的运算结果组合起来 (不会返回重复的数据)

在使用 UNION 的时候,每个 SELEC 的列表达式、相同的数据类型,并且他们出现的次序要一致,不过长度不一定要相同,类名也不一定要相同

语法

SELECT column1 [, column]
FROM table [,table2]
[WHERE condition]

UNION

SELECT column1[,column2]
FROM table1 [,table2]
[WHERE condition]

案例

08015118_1P1q.png

08015118_L07p.png

 连接两张表

SELECT ID,NAME,AMOUNT,DATE
FROM CUSTOMERS
LEFT JOIN ORDERS 
ON CUSTOMERS.ID = ORDERS.CUSTOMER_ID


UNION


SELECT ID,NAME,AMOUNT,DATE
FROM CUSTOMERS
RIGUT JION ORDERS
ON CUSTOMERS.ID = ORDERS,CUSTOMER_ID

​输出结果

08015118_714r.png

  •  UNION ALL

与UNION基本一致,只是它返回重复的结果,而UNION不会 

  •  UNION 与 UNION ALL操作如下08015119_myFF.png

 

08015121_8PPZ.png

 

  • INTERSECT

用于组合两个SELECT 语句,但是返回第一个SELECT 语句中与第二个 SELECT 语句里一样的记录,其他规则与UNION操作符一样

目前MySQL 5.0尚不支持,INTERSECT,但SQL Server和 Oracle全都支持

  • EXCEPT

但会第一个SELECT 语句里有但第二个 SELECT 语句没有的记录,同样的,其他使用规则与UNION一致

MySQL并不支持EXCEPT ,而Oracle中,则使用MINUS操作符来实现同样的功能

转载于:https://my.oschina.net/u/1785519/blog/1566333

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值