簡體   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