neo4j图数据库,如何合并数据集?union/union all有何区别?
发布于 作者:苏南大叔 来源:程序如此灵动~

根据节点的不同标签进行数据查询,这是在neo4j
世界里面的基本操作。但是,如果想合并两个不同标签的数据呢?其中一个可能的解决方案就是union
,它可以把两个不同的match
数据合并到一起。还有个类似的操作叫做union all
,两者有什么区别呢?这个也是本文中要探讨的问题。

大家好,这里是苏南大叔的程序如此灵动博客,这里记录苏南大叔和计算机代码的故事。本文讲述在neo4j
图数据库中,如何使用union
语句和union all
语句。测试环境:win10
,neo4j社区版@4.4.6
,java@11.0.14
。
测试数据集
这个文章里面,苏南大叔采用了一个自己的数据集。语句如下:
如果您需要清空数据库,可以使用:
显示所有数据,可以使用:

union all
不去重
猫猫狗狗都是宠物,那么,现在想知道都有哪些宠物呢?


可以看到,这里有两个叫做“小黑”的宠物,一个是猫猫,一个是狗狗。
union
去重
两个宠物复用了同一个名字“小黑”,现在需求变成:现在宠物都有什么哪些名字?这里不使用union all
,而使用union
。


这里因为字段名字都叫name
,所以不使用as
也是可以的。例如:
相关文档
- https://newsn.net/say/neo4j-optional-match.html
- https://newsn.net/say/neo4j-match-node.html
- https://newsn.net/say/neo4j-match-relationship.html
- https://neo4j.com/docs/cypher-manual/current/clauses/union/
综述
本文需要注意的是:字段名要一致,不一致就不能union
了。如果使用union
就会给数据去重,使用union all
就不会去重。


