MySQL表结果集相信大家都比较了解,下面就为您介绍多个MySQL表结果集组合的几种方法,希望可以让您对MySQL表结果集有更深的了解。
select * from table2
二.使用except 或 INTERSECT 运算符
与UNION相似,except 或 INTERSECT 运算符也可以将多个表(或结果集)组合生成一个新表(或结果集),只是结果不同而已。
1. Except运算符
和 UNION 指令类似, Except也是对两个 SQL 语句所产生的结果做处理的。不同的地方是Except在每一个表(或结果集)与第二个表(或结果集)比较前,已从每一个表的结果集中清除了所有重复的信息。也就是从Except运算所得到的结果集绝不会包含重复的记录(行)。
例如:大家要在Table_A(学生信息表)与Table_B(学生必修课完成信息表)中找出未完成的学生信息
Select * From Table_A
Except
Select * From Table_B
注意:许多DBMS系统不支持EXCEPT运算符,则此时不得不使用Left Outer Join运算符来实现。而在Oracle中的Minus与EXCEPT相似。
2. INTERSECT运算符
和 UNION 指令类似, INTERSECT 也是对两个 SQL 语句所产生的结果做处理的。不同的地方是,UNION 是联集,而 INTERSECT 是交集。也就是说,INTERSECT生成的结果集是多个表或结果集所共有的记录(行)。
Select AID,AName,ADemo From ATable
INTERSECT
Select BID,BName,BDemo From Btable
三.使用UNION Corresponding组合来自两个或多个与UNION不兼容的表中的行
例如:有两个表
Create Table Table_A(ID int,office int,address varchar(20),department char(5),pay money)
Create Table Table_B(office int,ID int,address varchar(20),department char(5))
可以使用UNION Corresponding来获取两个表中有共同列名的列中数据:
Select * From table_A UNION Corresponding Select * From Table_b
注意:并不是所有的DBMS都支持UNION Corresponding运算,包括MS-SQL Server