UNION
用于将多个 MATCH
或 RETURN
子句的结果合并为一个结果集。它可以用来合并不同模式的节点和关系,或者将多个查询的结果合并在一起。以下是一些常用的示例和解释:
基本用法:
sql
MATCH (p:Person)
WHERE p.age > 30
RETURN p.name AS name
UNION
MATCH (m:Movie)
WHERE m.year > 2000
RETURN m.title AS name
这个示例中,首先从满足条件的人节点中返回姓名,然后使用 UNION
将结果与满足条件的电影节点的标题合并起来。
多个查询合并:
sql
MATCH (p:Person)
RETURN p.name AS name
UNION
MATCH (m:Movie)
RETURN m.title AS name
UNION
RETURN 'Unknown' AS name
这个示例中,将三个查询的结果合并在一起,分别是人的姓名、电影的标题以及一个固定的字符串。
合并节点和关系:
sql
MATCH (p:Person)-[:ACTED_IN]->(m:Movie)
RETURN p.name AS name
UNION
MATCH (d:Director)-[:DIRECTED]->(m:Movie)
RETURN d.name AS name
这个示例中,将演员和导演的姓名合并在一起,他们分别与电影节点通过不同关系相连接。
使用 ORDER BY 排序:
sql
MATCH (p:Person)
RETURN p.name AS name
UNION
MATCH (m:Movie)
RETURN m.title AS name
ORDER BY name
这个示例中,先分别从人和电影节点中获取姓名和标题,然后使用 ORDER BY
对合并后的结果集进行排序。
总之,UNION
用于合并多个查询的结果,这些查询可以涉及不同类型的节点和关系,或者处理不同的属性。合并后的结果集会去除重复项,可以根据需要使用 ORDER BY
进行排序。