我正在尝试使用select
语句在sqlalchemy中做一些我认为应该简单的事情。基本上我有两个表,我想从它们中选择几个列,并使用group by进行左外连接。在SQL中,这看起来像这样:
SELECT
t1.id,
t1.name,
count(t2.id) as child_count
FROM parent t1
LEFT OUTER JOIN child t2
ON t1.id = t2.parent_id
GROUP BY t1.id, t1.name;
在sqlalchemy中,我可以做一些接近但不完全正确的事情:
sqlalchemy.select(
t1.id,
t1.name,
sqlalchemy.func.count(t2.id)
).where(
t1.id==t2.parent_id
).group_by(
t1.id, t1.name
)
但是,一旦我开始使用.join
或.outerjoin
,它似乎就会感到困惑,我似乎无法理解如何做到这一点。
任何指导?好像我错过了一些明显的东西。