繁体   English   中英

SQLAlchemy从case语句到FROM子句插入选择查询

[英]SQLAlchemy insert select query from case statement to FROM clause

我将案例陈述保存在变量中,例如:

article_video_exists = exists(
    select([1], correlate=False, from_obj=article_video_t).where(
        article_video_t.c.article_id == article_t.c.id))

has_videos_case = case([(article_video_exists, 1), ], else_=0).label(
    'has_videos')

并使用这种情况

select([has_videos_case], from_obj=article_t)

执行后,我在查询FROM语句中看到

FROM article_t, 
     (select 1 
      from article_video_t 
      where article_video_t.article_id=article_t.id) 

和错误,我应该使用别名。 我尝试使用别名进行选择,以防万一,但这并不能解决我的问题。 我尝试向所有select子句传递relatede = False,但这无济于事,但是如果我按原样在不使用变量的情况下在最终的select子句中传递大小写,那么它将起作用并且不会生成无效的FROM子句。

但是在此之后,我有很多重复的代码,那么在这种情况下如何使用变量呢? 谢谢。

通过使用select(...)。correlate_except(article_video_t)进行修复。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM