第二个查询给出了customerkey的列表。只要我只想将客户与列表中的键相匹配,我就希望在第一查询中使用该结果。在SQL中有一个IN操作符。在Cypher呢?
MATCH (s:Sale)-[:ORDERED_BY]->(c:Customer)
WHERE c.customerKey IN ******
RETURN c.name, SUM(s.orderQuantity)
MATCH (s:Sale)-[:CUSTOMER]->(c:Customer)
WITH SUM(s.orderQuantity) as qtt, c
WHERE qtt>1
RETURN c.customerKey
2条答案
按热度按时间qpgpyjmq1#
有一个IN操作符可以处理列表,还有一个COLLECT()命令可以将行更改为列表。
也就是说,我认为你根本不需要做这一步。您应该能够组合这两个查询,并使用第二个查询产生的客户来输入第一个查询,如下所示:
raogr8fs2#
是的,Cypher有一个
IN
选项。它以列表形式使用(带括号)。这个列表可以用以前查询的结果来构造(即通过提供结果列表而不是手动提供)