SqlAlchemy检查关系属性是否在列表中

时间:2016-06-13 06:24:05

标签: python mysql database python-2.7 sqlalchemy

我有2张桌子: 1)具有与第二个表有关系的列项的商店 2)项目表 - 有一些像品牌等的细节。

我正在尝试进行查询,以便从品牌列表中的商店中获取所有原料。

brands = self.session.query(Items).filter(Items.brand.in_(list))
self.session.query(Shop).filter((Shop.active_item== True) &
                                        (Shop.item.has(brands)))

提前感谢

1 个答案:

答案 0 :(得分:1)

SQLAlchemy仍然不支持in_ with objects。因此,您可以尝试两种方式。

  1. 获取品牌ID并在第二个查询中使用in_过滤它们。

    brands = self.session.query(Items).filter(Items.brand.in_(list)) brand_ids = [品牌obj的obj.id]
    self.session.query(Shop).filter((Shop.active_item == True)&                                     (Shop.item.id.in_(brand_ids)))

  2. 过滤品牌名单。

    self.session.query(Shop).filter((Shop.active_item == True)&                                         (Shop.item.brand.in_(列表)))

  3. 这只是我的想法。但我可以得到这个想法。

    干杯。