假设我拥有这两个具有一对多关系的对象:
class A(Base):
...
collection = relationship("B")
class B(Base):
...
a_id = Column(Integer, ForeignKey('table_for_a.id'), nullable=False)
key = Column(String(50), nullable=False)
如何同时查询A.collection中有B(“apple”),B(“orange”)和B(“banana”)的A?
感谢。
答案 0 :(得分:2)
经过一段时间的挖掘,我发现我可以得到所需的结果:
from sqlalchemy import and_
...
session.query(A).filter(
and_(
A.collection.any(key="apple"),
A.collection.any(key="orange"),
A.collection.any(key="banana")
)
).all()