我正在使用SQLAlchemy的.join()方法从多个表中检索数据。运行查询时,我期望得到一个包含来自不同表连接的所有数据的单个对象,以便我可以在其中使用a.area_name等内容,其中area_name位于其中一个连接表上。以下是我正在运行的查询和表格布局,如果有人能够提供关于如何实现我所需行为的见解,我将非常感激!我已经能够使用相同语法来使用.join()方法匹配结果并返回它们,我认为它会返回行中的额外数据,因为它连接了表(也许我误解了该方法的工作方式或如何通过查询对象检索信息?)。
如果它有助于故障排除,我正在使用MySQL作为数据库
查询:
如果它有助于故障排除,我正在使用MySQL作为数据库
查询:
a = User.query.filter(User.user_id==1).join(UserGroup,
User.usergroup==UserGroup.group_id).join(Areas, User.area==Areas.area_id).first()
还有表格:
class User(db.Model):
user_id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(20), unique=True)
usergroup = db.Column(db.Integer, db.ForeignKey('user_group.group_id'), nullable=False)
area = db.Column(db.Integer, db.ForeignKey('areas.area_id'), nullable=False)
class UserGroups(db.Model):
id = db.Column(db.Integer, primary_key=True)
group_id = db.Column(db.Integer, nullable=False, unique=True)
group_name = db.Column(db.String(64), nullable=False, unique=True)
class Areas(db.Model):
id = db.Column(db.Integer, primary_key=True)
area_id = db.Column(db.Integer, nullable=False, unique=True)
area_name = db.Column(db.String(64), nullable=False, unique=True)
\
作为行继续符,这样你就不必每次都把)
带到下一行了。 - Carel