我有 2 张 table : 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)))
提前致谢
最佳答案
SQLAlchemy 仍然不支持带有对象的 in_。因此你可以尝试两种方法。
获取品牌 ID 并在第二个查询中使用 in_ 进行过滤。
brands = self.session.query(Items).filter(Items.brand.in_(list)) brand_ids = [obj.id for obj in brands] self.session.query(Shop).filter((Shop.active_item== True) & (Shop.item.id.in_(brand_ids)))
使用品牌列表本身进行过滤。
self.session.query(Shop).filter((Shop.active_item== True) & (Shop.item.brand.in_(list)))
这简直是我的错觉。但我你能明白这个想法。
干杯。
关于python - SqlAlchemy 检查关系属性是否在列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37783022/