これを 1 つのクエリにマージして高速化することはできますか? テーブル Person と Cart があります (テーブルの ID は基本モデルから継承されます)
class PersonModel(Base):
__tablename__ = 'persons'
username = Column(String(30), nullable=True, default=None)
email = Column(String(75), nullable=True, default=None)
password = Column(String(128), nullable=True, default=None)
class CartModel(Base):
__tablename__ = 'carts'
person_id = Column(Integer, ForeignKey('persons.id'), nullable=False, index=True)
text = Column(String(300), nullable=True)
began_at = Column(BigInteger, nullable=False)
ended_at = Column(BigInteger, nullable=False, default=utc_time)
datetime = Column(TIMESTAMP, server_default=func.now())
money = Column(Float, default=0)
quantity = Column(Integer, default=0)
そして、時間 t 以降に発生したすべてのカートについて、人からユーザー名を、カートから数量を見つける必要があります。
result = []
for c in session.query(CartModel).filter(CartMode.ended_at >= t).all():
p = session.query(PersonModel).filter(PersonModel.id == c.person_id).first()
if p:
result.append((p.username, c.quantity))
これを1つのクエリに接着する方法は?