我的用户模型中有关系
photos = relationship('UserPhoto', backref='user', lazy='joined')
在我得到所有条目之后
users = query.all()
SA 使用 LEFT OUTER JOIN 查询 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>}
我花了几个小时找出原因,但仍在搜索
如果我像下面这样构造加入自己:
query.options(joinedload_all('some field'))
SA 仅使用 join 进行选择