我认为,高层次的误解是
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