Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python SQLAlchemy:访问时从关系中过滤对象_Python_Sql_Python 3.x_Sqlalchemy - Fatal编程技术网

Python SQLAlchemy:访问时从关系中过滤对象

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

查询语句:获取名称以“A”开头的子级。把他们和他们的父母联系起来。 模式:

  • 我有一对多的关系。父项(id、名称、子项(rel->child))->子项(id、名称)

    • 要筛选关系对象。(即,访问实例化的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))