1

1 対多の関係を持つこれら 2 つのオブジェクトがあるとします。

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 に答える