组合多个查询

  • UNION

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

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

语法it

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

UNION

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

案例io

 链接两张表table

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

​输出结果数据类型

  •  UNION ALL

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

  •  UNION 与 UNION ALL操做以下

 

 

  • INTERSECT

用于组合两个SELECT 语句,可是返回第一个SELECT 语句中与第二个 SELECT 语句里同样的记录,其余规则与UNION操做符同样im

数据

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

  • EXCEPT

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

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