1

假设我有这两个对象,具有一对多的关系:

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?

谢谢。

4

1 回答 1

3

经过一段时间的挖掘,我发现我可以得到想要的结果,如下所示:

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()
于 2012-10-11T23:51:59.283 回答