为什么此查询有效(尽管有重复的行):
START user=node(1197)
MATCH (user)-[:WROTE_REVIEW]->()-[:EVALUATES]->(post)
RETURN post.Id, post.Image, post.Description
ORDER BY post.CreationTime DESC;
Run Code Online (Sandbox Code Playgroud)
而这个没有(它返回错误Unknown identifier 'post'):
START user=node(1197)
MATCH (user)-[:WROTE_REVIEW]->()-[:EVALUATES]->(post)
RETURN DISTINCT post.Id, post.Image, post.Description
ORDER BY post.CreationTime DESC;
Run Code Online (Sandbox Code Playgroud)
唯一的区别是DISTINCT关键字.
我找到了使用a的解决方法,WITH但在我看来,我不应该这样做.
我正在使用Neo4j 2.0.0-M05.有任何想法吗?
谢谢!
这是合法的.
DISTINCT消除了由DISTINCT子句中未提及的属性进行排序的可能性,正则它们可能会被折叠(例如,如果有3条记录将post.CreationTime集中到一个post.Id桶中使用DISTINCT,哪一个应该按顺序排序? ).要获得有效的查询,请在DISTINCT中包含post.CreationTime,如:
START user=node(1197)
MATCH (user)-[:WROTE_REVIEW]->()-[:EVALUATES]->(post)
RETURN DISTINCT post.Id, post.Image, post.Description, post.CreationTime
ORDER BY post.CreationTime DESC;
Run Code Online (Sandbox Code Playgroud)
这不明摆着的,所以我提出https://github.com/neo4j/neo4j/issues/1322将它做成的文档-感谢它指向了!
| 归档时间: |
|
| 查看次数: |
405 次 |
| 最近记录: |