请考虑以下课程,
class Person:
id
name
jobs
class Job:
name
person
person_id (FK)
其中Person.jobs
引用类Job
对象。现在,我想执行以下查询,
# for a given person p
Job.query.filter(Job.notin_(p.jobs))
SQLAlchemy 中是否可能?
请不要因为我不想写Job.query.filter(Job.person_id != p.id)
。
答案 0 :(得分:0)
不!
作为文档about in_ explains,从SQLAlchemy的1.2版开始,您不能只有对象实例的列表:
从1.2版开始,只有您所说的“不想要”才是正确的答案:
Job.query.filter(Job.id.notin_([j.id for j in person.jobs]))