假设我有这两个对象,具有一对多关系:
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)
Run Code Online (Sandbox Code Playgroud)
如何查询 A.collection 中同时包含 B("apple")、B("orange") 和 B("banana") 的 A?
谢谢。
经过一段时间的挖掘,我发现我可以得到想要的结果,如下所示:
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()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
569 次 |
| 最近记录: |