查询AGE时出错:no relation entry for relid 3



我有一个包含两种节点的图:一种表示客户,另一种表示商家和商店。该图跟踪顾客在商店的位置和花费,用边表示这种交互。下面是我创建它们的方法:

-- Customers
CREATE (Bobby :Person {id:'1', name:'Bobby', gender:'man', age: 72})
-- Merchants
CREATE (Amazon :Merchant {id:'2', name:'Amazon', street:'2626 Wilkinson Court', address:'San Bernardino, CA 92410'})
-- Transaction
CREATE (Bobby)-[:HAS_BOUGHT_AT {amount:'986', time:'4/17/2014', status:'Undisputed'}]->(Amazon)

当我想只检索按降序排列的购买日期时,它成功返回它们:

SELECT * FROM cypher('MyGraph', $$
MATCH (v)-[r :HAS_BOUGHT_AT]->(m)
WITH toInteger(split(r.time, '/')[0]) as month, 
toInteger(split(r.time, '/')[1]) as day, 
toInteger(split(r.time, '/')[2]) as year
RETURN month, day, year
ORDER BY year DESC, month DESC, day DESC
$$) AS (month agtype, day agtype, year agtype);
month | day | year 
-------+-----+------
12    | 28  | 2014
12    | 26  | 2014
12    | 24  | 2014
12    | 23  | 2014
12    | 20  | 2014
12    | 20  | 2014
12    | 20  | 2014
12    | 20  | 2014
12    | 16  | 2014
12    | 15  | 2014
11    | 28  | 2014
11    | 27  | 2014
11    | 14  | 2014
10    | 25  | 2014
10    | 15  | 2014

但是如果我想显示正在匹配的顶点的名称,它会抛出一个错误。

SELECT * FROM cypher('MyGraph', $$
MATCH (v)-[r :HAS_BOUGHT_AT]->(m)
WITH toInteger(split(r.time, '/')[0]) as month,
toInteger(split(r.time, '/')[1]) as day,
toInteger(split(r.time, '/')[2]) as year
RETURN month, day, year, v.name, m.name
ORDER BY year DESC, month DESC, day DESC
$$) AS (month agtype, day agtype, year agtype, v_name agtype, m_name agtype);
ERROR:  no relation entry for relid 3

你得到这个错误的原因是你没有传递v。所以不能在WITH之后访问它们。

下面的查询可以解决您的错误。

SELECT * FROM cypher('graph', $$
MATCH (v)-[r :HAS_BOUGHT_AT]->(m)
WITH v,m,toInteger(split(r.time, '/')[0]) as month,
toInteger(split(r.time, '/')[1]) as day,
toInteger(split(r.time, '/')[2]) as year
RETURN month, day, year, v.name, m.name
ORDER BY year DESC, month DESC, day DESC
$$) AS (month agtype, day agtype, year agtype, v_name agtype, m_name agtype);

结果:

month | day | year | v_name  |  m_name  
-------+-----+------+---------+----------
4     | 17  | 2014 | "Bobby" | "Amazon"
(1 row)

相关内容