1.使用UNION
UNION 可以涉及编写多条SELECT语句,首先看看单条语句
第一条SELECT语句把Illinois,Indiana,Michigan等州的缩写传递给IN子句,检索出这些州的所有行.第二条SELECT利用简单的相等测试找出所有的'Fun4All'的cust_name
接下来我们使用UNION来组合两条语句,如下:
使用UNION关键字分隔两条SELECT语句,输出组合成一个查询结果集.
以上处理结果跟下面只用WHERE语句来处理是一样的
在这个简单的例子中,使用UNION 可能比使用WHERE子句更为复杂.但是对于较复杂的过滤条件,或者从多个表中检索数据的情形,使用UNION
可能会使处理更简单.
UNION的使用规则:
1,必须包含两条或者两条以上的SELECT语句
2.UNION中的每个查询必须包含相同的列,表达式或聚集函数
3.列数据必须兼容:类型不必完全相同,但必须是DBMS可以隐含转换的类型
4.SELECT 语句的输出用ORDER BY子句排序.在用UNION组合查询时,只能使用一条ORDER BY子句,它必须位于最后一条SELECT语句之后.
另外注意:UNION使用的时候会自动过滤查询结果重复的行,如果想匹配所有的结果(显示重复的结果)可以使用 UNION ALL关键字,如下:
可以看到使用UNION ALL查询的结果是显示重复行的.
UNION还支持另外两种UNION EXCEPT(有时称MINUS)可用来检索只在第一个表中存在而在第二个表中不存在的行.INTERSECT可用来检索两个表中都存在的行.
实际上这些UNION用得比较少,因为相同的结果可利用联结得到.