SQLAlchemy-联合所有-元数据中的列“ expr”值

时间:2019-03-27 16:34:35

标签: sql sqlalchemy union-all

我认为,高层次的误解是 union_all通话。我认为导致我出现问题的原因是当我完成所有union_all调用并查看column_descriptions实例变量中每一列的元数据时。 expr键似乎是我合并的所有表的组合,然后是最后的实际列名的组合。因此,当我在此subquery()对象上调用Query并尝试引用我认为应该调用的列时,它给我一个属性错误,因为我只是使用在中找到的列名这些表之一,而不是组合列名的长字符串。列名称看起来像这样:

<a bunch of stuff>s_s_LAST_TABLE_OF_UNIONS_<actual column name shared over all tables>

如何使expr成为其中一个表中的列名,并且该名称在我要与之合并的所有表之间共享?

我尝试使用with_entities(),并尝试将其中一个表对象的列ID放入其中以重命名它们,但这不起作用。

以下是我尝试转换的特定实现SQL:

SELECT table1.item_name, AVG(price) FROM
    (SELECT item_id, price FROM tableOneOfMany1
        UNION ALL 
    SELECT item_id, price FROM tableOneOfMany2
    .... SELECT item_id, price FROM tableOneOfManyN) as t1 
    JOIN table2
    ON table2.item_id=t1.item_id
    JOIN table1
    ON table1.group_id=table2.group_id

GROUP BY table1.item_name

0 个答案:

没有答案