繁体   English   中英

SQLAlchemy表达式语言:如何将表与子查询联接?

[英]SQLAlchemy expression language: how to join table with subquery?

我有一个子查询表inner_stmt ,我想将其与表revisions一起加入。 但是revisions.join()给出以下错误:

Neither 'Label' object nor 'Comparator' object has an attribute 'c'

这是我的代码。 我究竟做错了什么?

inner_stmt = select([
        ratings.c.article_name,
        func.min(ratings.c.timestamp).label('mintime')]) \
    .group_by(ratings.c.article_name).label('firstga')

stmt = select([
        revisions.c.article_id,
        func.max(revisions.c.length_bytes)]) \
    .select_from(revisions.join(
        inner_stmt,
        revisions.c.article_name == inner_stmt.c.article_name)) \
    .group_by(table.c.article_id)        

您正在label子查询inner_stmt label用于列或表达式,即SELECT ... AS ... 您需要alias ,该alias用于子查询表达式,即FROM ... AS ... 您无法访问前者中的列( .c.<name> ),即使在SQL中也是如此,因为它是SQL表达式。

暂无
暂无

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

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