如何在O(1)查询中同时过滤父母和孩子?

迈克·库珀

我有一对具有基本父子关系的模型。这个孩子有田野foo我想进行一个SQLAlchemy查询,该查询将返回所有具有foo符合条件的子代的Parent对象。我希望和那些父母一起归还孩子,但前提是他们符合过滤条件。

这些是我的模型:

class Parent(Model):
    __tablename__ = 'parent'
    id = Column(Integer, primary_key=True)
    children = relationship('Child', backref='parent')

class Child(Model):
    __tablename__ = 'child'
    id = Column(Integer, primary_key=True)
    foo = Column(String(128))
    parent_id = Column(Integer, ForeignKey('parent.id'), nullable=False)

这是一个例子。可以说我有父母AB我有孩子a1a2b1,和b2孩子a1foo = 1a2.foo = 2等等。

我想查询“ child.foo == 1”,然后取回该数据:

[
    {
        id: 'A',
        children: ['a1'],
    },
    {
        id: 'B',
        children: ['b1'],
    }
]

请注意,a2并且b2不包含在结果中。

到目前为止,我已经考虑了两个想法,但尚未解决:

  1. 在子级上选择,然后构建父级对象。

    执行此操作时,我无法查询父级上的字段,这也是必需的。

  2. 在父母上进行选择,然后遍历匹配的父母并进行更多查询以收集匹配的孩子。

    (似乎)这需要O(n)查询,而我不想这样做。

AudriusKažukauskas

要从单个查询中获取所有所需内容,您需要使用join()contains_eager()

q = session.query(Parent).\
    join(Parent.children).\
    options(contains_eager(Parent.children)).\
    filter(Child.foo == 1)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Android中为2个指向1个孩子活动的父母实施向上导航

来自分类Dev

父母和孩子中的点击事件

来自分类Dev

SQL查询选择孩子和父母

来自分类Dev

在自参考表中查询父母和孩子

来自分类Dev

C程序-如何在父母中获得孩子的孩子pid [分叉后]

来自分类Dev

如何查询laravel中的深层关系并按孩子筛选父母?

来自分类Dev

如何在自查表中归还孩子的父母?

来自分类Dev

如何在Elasticsearch中按孩子数对父母排序

来自分类Dev

如何在父母和孩子之间共享过滤器

来自分类Dev

如何在Cassandra的查询中同时使用ORDER BY和IN?

来自分类Dev

如何在Polymer中反映从孩子到父母的变化

来自分类Dev

如何在父母的孩子中通过引用访问孩子-React @ latest

来自分类Dev

修改WordPress中父母和孩子的图标

来自分类Dev

我如何使用班级的父母和孩子?

来自分类Dev

父母和孩子的订单查询

来自分类Dev

如何在MySQL中获得父母最受关注的孩子

来自分类Dev

C程序-如何在父母中获得孩子的孩子pid [分叉后]

来自分类Dev

如何在自查表中归还孩子的父母?

来自分类Dev

如何从位置获取父母和孩子的ID

来自分类Dev

如何在MySQL中同时查询帖子和帖子赞?

来自分类Dev

如何在父母和孩子之间共享过滤器

来自分类Dev

如何在JPA / Hibernate的孩子的ID中引用父母的ID?

来自分类Dev

如何在Visio中让孩子建立父母关系?

来自分类Dev

如何在 minimatch 模式中同时使用 NOT 和 OR 进行过滤?

来自分类Dev

如何在 UWP 中为孩子提供父母的身高

来自分类Dev

如何根据多个孩子django过滤父母

来自分类Dev

如何在一个查询中让所有孩子成为父母

来自分类Dev

你如何在laravel eloquent中查询孩子和父母

来自分类Dev

你如何在laravel eloquent中查询孩子和父母

Related 相关文章

  1. 1

    如何在Android中为2个指向1个孩子活动的父母实施向上导航

  2. 2

    父母和孩子中的点击事件

  3. 3

    SQL查询选择孩子和父母

  4. 4

    在自参考表中查询父母和孩子

  5. 5

    C程序-如何在父母中获得孩子的孩子pid [分叉后]

  6. 6

    如何查询laravel中的深层关系并按孩子筛选父母?

  7. 7

    如何在自查表中归还孩子的父母?

  8. 8

    如何在Elasticsearch中按孩子数对父母排序

  9. 9

    如何在父母和孩子之间共享过滤器

  10. 10

    如何在Cassandra的查询中同时使用ORDER BY和IN?

  11. 11

    如何在Polymer中反映从孩子到父母的变化

  12. 12

    如何在父母的孩子中通过引用访问孩子-React @ latest

  13. 13

    修改WordPress中父母和孩子的图标

  14. 14

    我如何使用班级的父母和孩子?

  15. 15

    父母和孩子的订单查询

  16. 16

    如何在MySQL中获得父母最受关注的孩子

  17. 17

    C程序-如何在父母中获得孩子的孩子pid [分叉后]

  18. 18

    如何在自查表中归还孩子的父母?

  19. 19

    如何从位置获取父母和孩子的ID

  20. 20

    如何在MySQL中同时查询帖子和帖子赞?

  21. 21

    如何在父母和孩子之间共享过滤器

  22. 22

    如何在JPA / Hibernate的孩子的ID中引用父母的ID?

  23. 23

    如何在Visio中让孩子建立父母关系?

  24. 24

    如何在 minimatch 模式中同时使用 NOT 和 OR 进行过滤?

  25. 25

    如何在 UWP 中为孩子提供父母的身高

  26. 26

    如何根据多个孩子django过滤父母

  27. 27

    如何在一个查询中让所有孩子成为父母

  28. 28

    你如何在laravel eloquent中查询孩子和父母

  29. 29

    你如何在laravel eloquent中查询孩子和父母

热门标签

归档