SQL UNION运算符

联合运算符用于合并两个或多个SELECT语句的结果集。

注意,联盟中的SELECT语句必须具有相同的列数。列也必须具有类似的数据类型。同时,每个SELECT语句中的列顺序必须相同。

SQL联合语法
选择column_name(S)从table_name1
联盟
选择column_name(S)从table_name2

注:默认情况下,联合操作符选择一个不同的值,即联合是重的。如果允许重复值,则使用联合所有。

sql所有语法
选择column_name(S)从table_name1
联盟的所有
选择column_name(S)从table_name2

此外,并集结果集中的列名总是等于联盟中第一个SELECT语句中的列名。

联合指令的目的是合并两个SQL语句的结果。从这个角度来看,联合有点类似于连接,因为这两个指令都可以从多个表中检索数据:

{ SQL语句1 }
联盟
{ SQL语句2 }假设我们有以下两个表,





store_information形式



store_name
销售额
日期

洛杉矶
1500美元
jan-05-1999

圣地亚哥
250美元
jan-07-1999

洛杉矶
300美元
jan-08-1999

波士顿
700美元
jan-08-1999

网络销售表



日期
销售额

jan-07-1999
250美元

jan-10-1999
535美元

jan-11-1999
320美元

jan-12-1999
750美元

我们要找到所有销售的日子。为了达到这个目的,我们使用以下SQL语句:选择日期从store_information
联盟
选择日期从internet_sales结果:





日期

jan-05-1999

jan-07-1999

jan-08-1999

jan-10-1999

jan-11-1999

jan-12-1999

值得一提的是,如果我们使用任何SQL语句(或两个句子一起)与选择不同的日期

SQL联盟所有
联合所有指令的目的是将两个SQL语句的结果结合起来。联合所有和联合的区别是,联合所有列出所有符合条件的数据,而不管数据值是否重复。联合所有的语法如下:SQL语句1 }
联盟的所有
{ SQL语句2 }我们在上一页使用相同的示例来显示联合所有和联合的区别,





store_information形式



store_name
销售额
日期

洛杉矶
1500美元
jan-05-1999

圣地亚哥
250美元
jan-07-1999

洛杉矶
300美元
jan-08-1999

波士顿
700美元
jan-08-1999

Internet Sales table



日期
销售额

jan-07-1999
250美元

jan-10-1999
535美元

jan-11-1999
320美元

jan-12-1999
750美元

我们必须找到走出商店的营业额和网络吞吐量的日子。为了达到这个目的,我们使用以下SQL语句:选择日期从store_information
联盟的所有
选择日期从internet_sales结果:





日期

jan-05-1999

jan-07-1999

jan-08-1999

jan-08-1999

jan-07-1999

jan-10-1999

jan-11-1999

jan-12-1999

如:
复制代码代码如下所示:
选择ID、名称、docpinyin医生
联盟
选择0作为ID,没有医生的名字作为名称,docpinyin


结果集是




选择ID、名称、docpinyin医生

结果集是



因此,联合带来了两个结果