SqlAlchemy生成奇怪的隐式查询

SqlAlchemy生成奇怪的隐式查询,sqlalchemy,Sqlalchemy,我的用户模型中有关系 photos = relationship('UserPhoto', backref='user', lazy='joined') 在我用 users = query.all() SA使用到userPhoto表的左外部联接进行查询 我开始迭代它们并打印所有属性 SA突然对每个条目进行奇怪的隐式查询 INFO:sqlalchemy.engine.base.Engine:BEGIN (implicit) INFO:sqlalchemy.engine.base.Engine:

我的用户模型中有关系

photos = relationship('UserPhoto', backref='user', lazy='joined')
在我用

users = query.all()
SA使用到userPhoto表的左外部联接进行查询

我开始迭代它们并打印所有属性 SA突然对每个条目进行奇怪的隐式查询

INFO:sqlalchemy.engine.base.Engine:BEGIN (implicit)
INFO:sqlalchemy.engine.base.Engine:SELECT users.id AS users_id, ... FROM users 
WHERE users.id = %(param_1)s
INFO:sqlalchemy.engine.base.Engine:{'param_1': <integer idetifier>}
INFO:sqlalchemy.engine.base.Engine:SELECT user_photo.id... FROM user_photo 
WHERE %(param_1)s = user_photo.user_id
INFO:sqlalchemy.engine.base.Engine:{'param_1': <integer idetifier>}

SA仅使用join进行一次选择

此处正在进行某种延迟加载,但没有足够的详细信息来查看何时需要再次加载用户、用户照片等。不加载对象可能有各种原因,具体取决于场景。如果我使用User、User.photos和lazy=“joined”进行一个简单的测试,那么在我迭代时,一个直接加载将只运行一条SQL语句。
query.options(joinedload_all('some field'))