Sqlalchemy:过滤关系中应该有多少个实例
Sqlalchemy: Filter how many instances there should be in a relationship
如果您想按关系之一的长度(关系中存在的行数)过滤 table,您会怎么做?
我希望过滤语句的功能如下:
Table.query.filter(Table.relationship.length == relationship_length)
这是一个应用示例:
Family.query.filter(Family.children.length == amount_of_children)
正如 Tim Roberts 所说,简单 SQL 的方法是:
GROUP BY familyid HAVING count(*) > length
如果sqlalchemy中没有这方面的功能,那怎么办呢?
正如 Tim Roberts 所说,简单 SQL 的方法是:
GROUP BY tableid HAVING count(*) > length
在 sqlalchemy 中,可以这样写:
from sqlalchemy import func
Table.query.join(Table.relationship).group_by(Table.id).having(func.count() == relationship_length)
例如,搜索具有特定数量 children 的家庭:
from sqlalchemy import func
Family.query.join(Family.children).group_by(Family.id).having(func.count()==amount_of_children)
如果您想按关系之一的长度(关系中存在的行数)过滤 table,您会怎么做? 我希望过滤语句的功能如下:
Table.query.filter(Table.relationship.length == relationship_length)
这是一个应用示例:
Family.query.filter(Family.children.length == amount_of_children)
正如 Tim Roberts 所说,简单 SQL 的方法是:
GROUP BY familyid HAVING count(*) > length
如果sqlalchemy中没有这方面的功能,那怎么办呢?
正如 Tim Roberts 所说,简单 SQL 的方法是:
GROUP BY tableid HAVING count(*) > length
在 sqlalchemy 中,可以这样写:
from sqlalchemy import func
Table.query.join(Table.relationship).group_by(Table.id).having(func.count() == relationship_length)
例如,搜索具有特定数量 children 的家庭:
from sqlalchemy import func
Family.query.join(Family.children).group_by(Family.id).having(func.count()==amount_of_children)