使用sqlalchemy在where子句中使用多列进行查询

时间:2014-08-21 22:18:53

标签: python mysql sql sqlalchemy

我正在寻找使用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

1 个答案:

答案 0 :(得分:12)

你想要tuple_构造:

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