使用sqlalchemy我想做类似的事情:
q = session.query(a, b.id, func.count(a.id))
q = q.outerjoin(b, b.id == a.b_id)
q = q.group_by(b.id)
然而,在大多数sql实现中,不可能选择不在group by子句中的字段。
我可以订购sqlalchemy从表a中选择,但不能直接从a中选择任何字段吗?在这种情况下,我可以只更改连接顺序,但我有一些复杂的查询不容易修改。
答案 0 :(得分:3)
您可以使用select_from
明确设置FROM
子句:
session.query(b.id, func.count(a.id)).select_from(a).outerjoin(b, ...)...