Я пытаюсь получить данные из нескольких таблиц с помощью SQLAlchemy , используя метод .join () .
Когда я запустил запрос, я ожидал получить единственный объект, в котором были объединены все данные из разных таблиц, чтобы я мог использовать a.area_name и т. Д., Где area_name находится на одной из соединенных таблиц.Ниже приведен запрос, который я выполняю, и макет таблицы. Если бы кто-нибудь мог предложить понимание того, как добиться поведения, к которому я стремлюсь, я был бы очень признателен!Мне удалось использовать метод .join () с тем же синтаксисом для сопоставления результатов и их возврата. Я подумал, что он также будет возвращать дополнительные данные из строк, поскольку он join таблицы (возможно, я неправильно понимаю, как работает метод или как получить информацию через объект запроса?).
Если это помогает при устранении неполадок, я использую 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)