Python SQLAlchemy:访问时从关系中过滤对象
查询语句:获取名称以“A”开头的子级。把他们和他们的父母联系起来。 模式:Python SQLAlchemy:访问时从关系中过滤对象,python,sql,python-3.x,sqlalchemy,Python,Sql,Python 3.x,Sqlalchemy,查询语句:获取名称以“A”开头的子级。把他们和他们的父母联系起来。 模式: 我有一对多的关系。父项(id、名称、子项(rel->child))->子项(id、名称) 要筛选关系对象。(即,访问实例化的Parent.children时获得的对象列表) 例如:[Parent(id=1,Name='Parent1'children=[Child(id='1',Name='AChild1')、Child(id='2',Name='Child2')]需要在访问结果查询时过滤到:[Parent(i
- 要筛选关系对象。(即,访问实例化的Parent.children时获得的对象列表)
- 例如:
需要在访问结果查询时过滤到:[Parent(id=1,Name='Parent1'children=[Child(id='1',Name='AChild1')、Child(id='2',Name='Child2')]
[Parent(id=1,Name='Parent1'children=[Child(id='1',Name='AChild1')]]
也许我本应该更努力地搜索,但这是一些搜索的结果 当我们使用
contains_eager()
时,我们正在构造将用于填充集合的SQL。由此,我们自然可以选择修改集合要存储的值,方法是编写SQL以加载集合或标量属性的元素子集
导致声明:
db.Query(Parent).join(Parent.children)\
.filter(Parent.children.any(Child.Name.like("A%")))\
.options(contains_eager(Parent.children))
也许我本应该更努力的,但这是一些搜索的结果 当我们使用
contains_eager()
时,我们正在构造将用于填充集合的SQL。由此,我们自然可以选择修改集合要存储的值,方法是编写SQL以加载集合或标量属性的元素子集
导致声明:
db.Query(Parent).join(Parent.children)\
.filter(Parent.children.any(Child.Name.like("A%")))\
.options(contains_eager(Parent.children))