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
UNIONmust 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 |