MySQL允许执行多个查询(多条SELECT语句),并将结果作为单个数据集显示,这些组合查询通常称为并(union)或者符合查询(compound query)。
我们使用UNION操作符来组合多天SELECT查询语句。
以products为例:
我们想要价格低于5的一个物品列表,也想得到厂商是1001和1002的物品列表,解决这个问题有三种方式:
1.使用两条独立的查询:
2.使用WHERE组合限制条件:
可以看到筛选的结果有8条,比第一种方法少了一条数据,因为WHERE只筛选不重复的行;
3.使用组合查询
可以看到,和第一种方式类似,我们在两条语句之间插入了UNION来组合两条SELECT语句。
以下是使用UNOIN的一些规则:
1.UNOIN必须由两条或者两条以上的SELECT语句组成,语句之间使用关键字UNION分隔;
2.UNION中的每个查询必须包含相同的列、表达式或者聚集函数;
3.UNION从查询结果中自动去除了重复的结果,和WHERE语句的结果类似;
4.如果不想对结果进行去重,可以使用UNION ALL:
5.在对UNION进行组合查询时,只能使用一条ORDER BY子句,它必须出现在最后一条SELECT语句之后: