UNION可以组合两个或者两个以上的查询结果到一个结果中,需要注意一下几点:
(1)可以组合两个或者两个以上的查询结果。
(2)UNION和UNION ALL的用户不同,尤其需要注意UNION的用法。
(3)每个查询的结果列数和列名都必须相同。
1、可以组合两个或者两个以上的查询结果
unwind [1,2,3] as x
return x
union all
unwind [4,5,6] as x
return x
union all
unwind [7,8,9] as x
return x
上面结果输出1~9。
2、UNION和UNION ALL
UNION ALL会输出所有的查询结果,不做任何处理;UNION输出的时候会做去重处理,不仅仅是对不同查询结果之间做去重处理,而且还会对同一个查询的结果做去重处理。看下面两个查询。
unwind [1,2,1,2,3] as x
return x
union all
unwind [1,2,1,2,3] as x
return x
上面语句会输出:1,2,1,2,3,1,2,1,2,3。(实际上是换行输出。)
unwind [1,2,1,2,3] as x
return x
union
unwind [1,2,1,2,3] as x
return x
上面语句会输出:1,2,3,(实际上是换行输出。)而不是1,2,1,2,3。
3、每个查询的结果列数和列名都必须相同
下面查询是错误的,因为列名x、y不同。
unwind [1,2,3] as x
return x
union
unwind [4,5,6] as y
return y