首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在sqlalchemy中为oracle update查询移动CTE

如何在sqlalchemy中为oracle update查询移动CTE
EN

Stack Overflow用户
提问于 2019-05-09 22:11:58
回答 1查看 240关注 0票数 2

我用sqlalchemy生成的查询来面对oracle错误ORA-00928: missing SELECT keyword。这个问题已经描述过了,并回答了here

我的查询如下所示:

代码语言:javascript
运行
复制
WITH table2 (id) AS (
    SELECT id
    FROM table3
)

UPDATE table SET id=1 
WHERE EXISTS (
    SELECT * 
    FROM table 
    WHERE id IN (SELECT id FROM table2)
)

并通过下面的代码生成:

代码语言:javascript
运行
复制
table2 = session.query(table3.id).cte()
update(table).where(exists().where(table.id.in_(table2))).values(id=1)

现在我想知道如何告诉sqlachemy将CTE放在WHERE子句中,而不是放在UPDATE之上。

代码语言:javascript
运行
复制
UPDATE table SET id=1 
WHERE EXISTS (
    WITH table2 (id) AS (
        SELECT id
        FROM table3
    )

    SELECT * 
    FROM table 
    WHERE id IN (SELECT id FROM table2)
)
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56061391

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档