使用sqlalchemy选择列并从多个表连接

时间:2018-06-06 10:02:39

标签: sqlalchemy

我正在尝试使用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,它似乎就会感到困惑,我似乎无法理解如何做到这一点。

任何指导?好像我错过了一些明显的东西。

0 个答案:

没有答案