У меня есть две такие таблицы:
class UserRole(tyrande.BaseModel):
"""SQLAlchemy UserRole model definition."""
__tablename__ = 'user_role'
id = sa.Column(sa.Integer, autoincrement=True, index=True, primary_key=True)
type = sa.Column(sa.String, nullable=False, unique=True)
class User(tyrande.BaseModel):
"""SQLAlchemy User model definition."""
__tablename__ = 'user'
id = sa.Column(sa.Integer, autoincrement=True, index=True, primary_key=True)
name = sa.Column(sa.String, index=True, nullable=False)
email = sa.Column(sa.String, unique=True, index=True, nullable=False)
password = sa.Column(sa.String, nullable=False)
birth_date = sa.Column(sa.Date, nullable=False)
role_id = sa.Column(
sa.Integer, sa.ForeignKey("user_role.id"), server_default='1')
is_verified = sa.Column(
sa.Boolean, server_default=sa.sql.expression.false(), nullable=False)
create_date = sa.Column(
sa.DateTime(timezone=True),
server_default=sa.sql.func.now(), nullable=False)
users = User.__table__
user_roles = UserRole.__table__
, и я хочу сделать следующий запрос:
users.join(user_roles).select().where(users.c.email == 'dummy@dummy.com')
Выполнение запроса дает мне следующий результат:
<Record id=11 name='standard_user' email='dummy@dummy.com' password='$2b$12$gxeX1JQgTOQp45siGAwbhOYUQdi//YabPH.aG318ZTjwQs94/1k2K' birth_date=datetime.date(2020, 2, 23) role_id=1 is_verified=False create_date=datetime.datetime(2020, 2, 23, 15, 35, 8, 871941, tzinfo=datetime.timezone.utc) id=1 type='STANDARD'>
, который имеет два поля с именем 'id', одно из таблицы users
и второе из user_roles
. Как я могу получить тот, который я хочу? Это очень запутанно.