PostgreSQL用CTE关联两表报psycopg2输入末尾语法错误如何解决
问题原因
你编写的SQL仅定义了CTE(公共表表达式)的结构,没有补充CTE定义后的主执行语句,PostgreSQL 语法要求WITH子句不能单独运行,定义完成后必须跟随对应的查询、插入、更新或删除操作,否则就会触发输入末尾存在语法错误的提示。
修复方案
在CTE定义后补充你需要的执行逻辑即可,比如你要查询CTE内的全部关联结果,完整代码如下:
WITH de AS ( SELECT e.*, d.department FROM db_employee e JOIN db_dept d ON e.department_id = d.id ) -- 以下是CTE定义后的主查询语句,可根据实际需求修改 SELECT * FROM de;
如果你有其他业务需求,也可以将最后的SELECT语句替换为对应的操作,比如按部门统计员工平均薪资、筛选指定薪资范围的员工信息等均可。
内容的提问来源于stack exchange,提问作者Lokesh Varshney
相关产品推荐
相关产品推荐

