使用sqlalchemy进行多列where in查询

9

我希望使用sqlalchemy执行此查询。

SELECT name,
       age,
       favorite_color,
       favorite_food
FROM kindergarten_classroom
WHERE (favorite_color,
       favorite_food) IN (('lavender','lentil soup'),('black','carrot juice'));

我只想要喜欢(薰衣草和小扁豆汤)或(黑色和胡萝卜汁)的孩子。此外,这可能是一个巨大的最爱颜色和食物的列表(可能>10K),所以我需要分批处理。
这与之类似,但不能完全满足我的需求:Sqlalchemy in clause

可能是 https://dev59.com/IGIj5IYBdhLWcg3wPzDH 的重复问题。 - Tim
1个回答

20

您想使用tuple_构造:

session.query(...).filter(
    tuple_(favorite_color, favorite_food).in_(
        [('lavender', 'lentil soup'), ('black', 'carrot juice')]
    )
)

是的,这正是我想要的。谢谢。 - crunkchitis

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接