如何从带有连接的SQLAlchemy查询中获取可靠计数?

时间:2015-09-15 20:48:35

标签: python postgresql sqlalchemy

我正在使用SQLAlchemy和PostgreSQL。我的一些查询涉及加入相关表并根据连接表中的值进行过滤。有时这些连接和过滤器可以是多个关系。我的问题是,在使用限制时,我还没有找到获得可靠数量结果的方法。我知道限制会影响行数,而不会影响我的查询返回的顶级模型对象的数量。是否有解决此问题的技巧或窍门?

这是一个简单(可能很糟糕)的例子。想象一下,数据库包含表格和CompanyDepartmentEmployee的相应SQLAlchemy模型类。显然,公司中可能有许多部门,部门中有许多员工。我可能会尝试让20家公司的员工名叫Bob,就像这样:

query = Company.query
query = query.join(Department)
query = query.join(Employee)
query.filter(Employee.name == "Bob")
query.limit(20)
result = query.all()

假设有很多Bobs,这个查询将不会产生20家公司。有没有办法构建这样的查询,以便以这种方式加入和过滤时返回特定数量的公司?

0 个答案:

没有答案