在 Neo4j 中删除 UNION ALL 之后的重复行

Remove duplicate rows after UNION ALL in Neo4j

我的简单数据库包含相互链接的 'terms' 和 'codes' 节点。有两种类型的关系。

'terms' 和 'codes' 之间的关系称为 :CODE 并且是无向的(或在两个方向上同等阅读)。 'terms' 之间的关系称为 :NT(表示狭义术语)并且是定向的。

我想获取由 :NT 关系连接并具有相同代码的所有术语的列表。这是 SQL 服务器中非常简单的查询,但接下来我想扩展所有 :NT* 关系。这就是我使用 Neo4j 的原因。

如果我 运行 下面的查询是可以的,除了很多重复的行。

MATCH (a)-[:NT]->(b), (a)-[:CODE]-(c), (b)-[:CODE]-(c)
RETURN DISTINCT a.termid AS termid, c.code AS code
UNION ALL
MATCH (a)-[:NT]->(b), (a)-[:CODE]-(c), (b)-[:CODE]-(c)
RETURN DISTINCT b.termid AS termid, c.code AS code
ORDER BY termid;

我想删除结果集中的重复行。

这与 MS 中的数据->删除重复项完全相同 Excel。

我在 Neo4j 中没那么容易实现它。

感谢您的帮助!

您可以使用 UNION 而不是 UNION ALL,这将 return 一个跨越两者的独特集合。不过你想要交集吗?