使用sqlalchemy进行多列条件查询
我想用sqlalchemy来执行这个查询。
SELECT name,
age,
favorite_color,
favorite_food
FROM kindergarten_classroom
WHERE (favorite_color,
favorite_food) IN (('lavender','lentil soup'),('black','carrot juice'));
我只想要喜欢(薰衣草和扁豆汤)或者(黑色和胡萝卜汁)的孩子。此外,这可能会有一大堆喜欢的颜色和食物(可能超过1万种),所以我想要分批处理这些。
这个问题有点相似,但并没有完全解决我的需求:Sqlalchemy in clause
1 个回答
20
你想要使用 tuple_
这个构造方法:
session.query(...).filter(
tuple_(favorite_color, favorite_food).in_(
[('lavender', 'lentil soup'), ('black', 'carrot juice')]
)
)