python sqlalchemy union查询,'Query'对象没有属性'花'

时间:2016-04-06 01:13:22

标签: python mysql sqlalchemy union

#app adset
app_list = db.session.query(
    AdsetAppReport.adset_id.label("adset_id"),
    func.sum(AdsetAppReport.spend).label("spends"),
    ).group_by(AdsetAppReport.adset_id)

#web adset
web_list = db.session.query(
    AdsetReport.adset_id.label("adset_id"),
    func.sum(AdsetReport.spend).label("spends"),
    ).group_by(AdsetReport.adset_id)

#union two tables
both_list = app_list.union(web_list)

#Query
adset_list = db.session.query(
    Adset.adset_id,
    Adset.user_os,
    both_list.spends,
    ).filter(both_list.adset_id == Adset.adset_id) \
     .all()

我想将两个表合并为both_list,然后在临时表中创建adset内部联接。 当我运行代码,但它显示我的AttributeError。 AttributeError:both_list'Query'对象没有属性'花'

1 个答案:

答案 0 :(得分:0)

我无法检查这是否有效,但创建子查询可能会解决它。而且,我明确了联接。

#union two tables
both_list = app_list.union(web_list).subquery()

#Query
adset_list = db.session.query(
        Adset.adset_id,
        Adset.user_os,
        both_list.c.spends,
    ).\
    join(both_list, both_list.c.adset_id == Adset.adset_id).\
    all()