Overview
The UNION
statement combines results of two or more queries into a single result set that includes the distinct records present in any of the query. When multiple return items are involved, the combination of their values is unique.

To keep all the records without deduplication, use the UNION ALL
statement.
Syntax
...
return <item1> as <alias1?>, <item2?> as <alias2?>, ...
union
...
return <item1> as <alias1?>, <item2?> as <alias2?>, ...
Details
- The return items in all queries combined by
UNION
must be identical.
Example Graph

To create the graph, execute each of the following UQL queries sequentially in an empty graphset:
create().node_schema("student").node_schema("course").edge_schema("takes")
create().node_property(@*, "name").node_property(@student, "age", int32).node_property(@course, "credits", int32)
insert().into(@student).nodes([{_id:"S1", name:"Jason", age:25}, {_id:"S2", name:"Lina", age:23}, {_id:"S3", name:"Eric", age:24}, {_id:"S4", name:"Emma", age:26}, {_id:"S5", name:"Pepe", age:24}])
insert().into(@course).nodes([{_id:"C1", name:"French", credits:4}, {_id:"C2", name:"Math", credits:5}])
insert().into(@takes).edges([{_from:"S1", _to:"C1"}, {_from:"S2", _to:"C1"}, {_from:"S3", _to:"C1"}, {_from:"S2", _to:"C2"}, {_from:"S3", _to:"C2"}, {_from:"S4", _to:"C2"}, {_from:"S5", _to:"C2"}])
Combining Queries
n({@course.name == "French"}).e().n({@student} as s) return s.name
union
n({@course.name == "Math"}).e().n({@student} as s) return s.name
Result:
s.name |
---|
Lina |
Eric |
Jason |
Emma |
Pepe |
n({@course.name == "French"} as c).e().n({@student} as s) return c.name, s.age
union
n({@course.name == "Math"} as c).e().n({@student} as s) return c.name, s.age
Result:
c.name | s.age |
---|---|
French | 23 |
French | 24 |
French | 25 |
Math | 23 |
Math | 26 |
Math | 24 |