0

我在 Neo4J DB(Northwind DB)中有以下节点:

  • Customer
  • Order
  • Product

节点具有以下关系:
(c:Customer)-->(o:Order)--> (p:Product)

我怎样才能得到Products, 和已经购买的产品的数量Customers, 谁也购买了Product= pr_ID2 的产品?

我尝试了以下查询。它返回正确的项目,但计数错误:

MATCH (p:Product)<--(o:Order)<--(c:Customer) 
WITH p,o,c WHERE p.productID='2' 
MATCH c-->(od:Order)-->(pr:Product) 
WITH c,od,pr WHERE NOT pr.productID='2' 
RETURN pr.productName, count(pr.productName)
4

2 回答 2

0

您需要在使用 WITH 传递它们之前过滤产品 ID:

MATCH (c:Customer)-->(o:Order)-->(p:Product {productId: '2'})
MATCH (c)-->(:Order)-->(p2:Product)
WHERE p2 <> p
RETURN p2.productName, count(*) as c
于 2015-10-25T16:37:24.320 回答
0

我的查询不起作用的原因是我使用count(pr.productName)count(DISTINCT od).

于 2015-10-25T16:40:53.173 回答