我找不到类似的帖子,所以如果你已经知道一个或者我的问题不正确,请告诉我。
我有这个查询
MATCH
(t:Taxi {name:'Taxi1813'})<-[:ASSIGNED]-(u2:User)-[rd2:DROP_OFF]->
(g2:Grid)-[r:TO*1..2]-(g:Grid)<-[rd:DROP_OFF]-(u:User)-[:ASSIGNED]->(t)
WHERE ID(u2) < ID(u) AND rd2.time >= '04:38' AND rd2.time <= '04:42'
WITH DISTINCT u2, g2, u, g, rd2, rd
MATCH p=shortestPath((g2)-[r:TO*1..2]-(g))
WITH rd2, rd,u2, g2, u, g, p, REDUCE(totalTime = 0, x IN RELATIONSHIPS(p) | totalTime + x.time) AS totalTime
WHERE totalTime <= 4
RETURN u2.name, u.name
Run Code Online (Sandbox Code Playgroud)
所以最后我得到了两列
u2.name u.name
User179 UserTest
User177 User179
Run Code Online (Sandbox Code Playgroud)
是否有一种方法或功能可以将两列合并为一列并删除重复项
Users
User179
User177
UserTest
Run Code Online (Sandbox Code Playgroud)
有什么建议?谢谢
您可以将两个集合合并为一个集合,然后只返回不同的项目。
WITH ['User179', 'User177'] AS list1
, ['UserTest', 'User179'] AS list2
UNWIND list1 + list2 AS item
RETURN DISTINCT item
Run Code Online (Sandbox Code Playgroud)
或者,如果您使用的是 APOC,则可以apoc.coll.union()改用。
WITH ['User179', 'User177'] AS list1
, ['UserTest', 'User179'] AS list2
RETURN apoc.coll.union(list1,list2)
Run Code Online (Sandbox Code Playgroud)