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

时间:2015-02-17 14:53:20

标签: neo4j duplicates cypher union-all

我的简单数据库包含'术语的节点'和'代码'相互联系。有两种类型的关系。

'术语之间的关系'和'代码'调用:CODE并且是无向的(或在两个方向上均等地读取)。术语之间的关系'叫:NT(这意味着狭义的术语)并且是有针对性的。

我想得到所有连接的术语列表:NT关系并且具有相同的代码。这在SQL Server中是非常简单的查询,但接下来我想扩展所有: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;

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

这与Data->在MS Excel中删除重复项完全相同。

我无法在Neo4j中轻松实现它。

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

您可以使用UNION代替UNION ALL,这将在两者之间返回一个唯一的集合。你想要交叉吗?