SQLAlchemy:使用IN运算符查询复合主键

Tah*_*gir 2 postgresql sqlalchemy compound-key

假设一个表foo具有复合主键(a,b),如何使用SQLAlchemy(PostgreSQL方言)生成以下sql查询?

SELECT * FROM foo WHERE (a,b) IN ((1,2), (2,3));
Run Code Online (Sandbox Code Playgroud)

Tah*_*gir 6

答案是:

from sqlalchemy.sql.expression import Tuple
session.query(Foo).filter(Tuple(Foo.a, Foo.b).in_([(1,2), (3,4)])).all()
Run Code Online (Sandbox Code Playgroud)