如何在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

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

父母和孩子的订单查询

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

SQL查询选择孩子和父母

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

父母和孩子中的点击事件

来自分类Dev

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

Related 相关文章

  1. 1

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

  2. 2

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

  3. 3

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

  4. 4

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

  5. 5

    父母和孩子的订单查询

  6. 6

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

  7. 7

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

  8. 8

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

  9. 9

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

  10. 10

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

  11. 11

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

  12. 12

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

  13. 13

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

  14. 14

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

  15. 15

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

  16. 16

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

  17. 17

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

  18. 18

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

  19. 19

    SQL查询选择孩子和父母

  20. 20

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

  21. 21

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

  22. 22

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

  23. 23

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

  24. 24

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

  25. 25

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

  26. 26

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

  27. 27

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

  28. 28

    父母和孩子中的点击事件

  29. 29

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

热门标签

归档