【问题标题】:Select parents data and children count in SQL-Alchemy在 SQL-Alchemy 中选择父母数据和孩子计数
【发布时间】:2016-05-20 08:12:49
【问题描述】:

我有一个父表和一个子表。这是一对多的关系:父母可以有很多孩子,一个孩子只能有一个父母。

我正在尝试在 SQLAlchemy 中创建一个查询,该查询将为我提供所有父母的数据,以及他们的孩子人数。

到目前为止,我有这个:

db.session.query(func.count(models.Child.id), models.Parent)\
  .select_from(models.Parent).join(models.Child).group_by(models.Parent.id)

这将产生如下 SQL:

SELECT count(child.id) AS count_1, parent.id AS parent_id, parent.name AS parent_name
FROM parent 
INNER JOIN child ON parent.id = child.parent_id

这给了我想要的结果,除非父母没有孩子。然后,结果中完全忽略了该父项,而期望的结果是有一行,其 id、name 和 0 计数。

【问题讨论】:

    标签: python sql sqlalchemy flask-sqlalchemy


    【解决方案1】:

    这称为外连接。

    在 SQLAlchemy 中,使用 outerjoin 方法而不是 join,您将获得所需的结果。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-28
      • 1970-01-01
      • 2012-12-07
      • 2011-07-14
      • 2012-03-17
      • 1970-01-01
      相关资源
      最近更新 更多