Apache-AGE的FROM子句中使用多个Cypher调用可行吗?有何解决办法?
解决多次调用Cypher()函数的表名重复问题
当在查询中同时调用两次cypher()函数时,会触发如下错误:
ERROR: table name "cypher" specified more than once
这是因为PostgreSQL将每个cypher()函数调用视为一张表,重复使用"cypher"作为标识符会导致命名冲突。
解决办法
给每个cypher()调用指定唯一的表别名即可,使用AS关键字定义别名:
示例代码:
SELECT * FROM cypher('cypher_query1') AS c1, cypher('cypher_query2') AS c2;
如果更倾向于使用标准JOIN语法,也可以写成:
SELECT * FROM cypher('cypher_query1') AS c1 CROSS JOIN cypher('cypher_query2') AS c2;
通过给每个Cypher查询结果集分配不同的别名(比如c1、c2),就能避免命名冲突,让查询正常执行。
内容的提问来源于stack exchange,提问作者moeed865
相关产品推荐
相关产品推荐

