我可以在SqlAlchemy中指定特定的查询表(相当于FROM)

时间:2016-02-20 06:40:15

标签: python sql sqlalchemy

我需要从表中选择行,但我不想在查询开头(db.session.query(...)

中放置与该表相关的任何列

例如,这里是SQL:

SELECT item_type.item_type,
purchase_transaction.transaction_date, item.purchase_transaction_id,
COUNT(item.id) as quantity
FROM item
INNER JOIN purchase_transaction ON purchase_transaction.id = item.purchase_transaction_id
INNER JOIN item_type ON item_type.id = item.item_type_id
WHERE item.purchase_transaction_id IS NOT NULL
GROUP BY item.purchase_transaction_id,  item.item_type_id
ORDER BY purchase_transaction.transaction_date ASC

我想迭代item表,但第一个column不会来自该表。 SQLAlchemy中是否有任何等效方法?我能得到的最接近的是使用

db.session.query(models.Item.purchase_transaction_id, models.ItemType.item_type,
        models.PurchaseTransaction.transaction_date,
        func.count(models.Item.id)).
        join(models.PurchaseTransaction, models.Item).
        group_by(models.Item.purchase_transaction_id, models.ItemType.id) # not complete code

但这需要我将Item表中的任何列作为第一列。我假设Query SqlAlchemy将始终选择第一个参数作为FROM表,我错了吗?其他替代解决方案是重新排列查询列

的方法

0 个答案:

没有答案