如何在sqlalchemy会话查询中加入?

nor*_*ner 9 python orm sqlalchemy

我需要在sqlalchemy中找到这个查询的等价物.

SELECT u.user_id, u.user_name, c.country FROM
table_user u , table_country c WHERE u.user_email = 'abc@def.com'
Run Code Online (Sandbox Code Playgroud)

我试过以下代码:

session.query(User).join(Country.country).filter(User.user_email == 'abc@def.com').first()
Run Code Online (Sandbox Code Playgroud)

这给了我以下错误:

  AttributeError: 'ColumnProperty' object has no attribute 'mapper'
Run Code Online (Sandbox Code Playgroud)

任何人都可以给映射到新类对象的表提供连接查询的示例吗?

jd.*_*jd. 20

假设您的用户映射器与国家/地区配置关系,请尝试此操作.

user, country = session.query(User, Country.country).join(Country).filter(User.user_email == 'abc@def.com').first()
Run Code Online (Sandbox Code Playgroud)

  • 那么这是一个映射问题而不是查询问题.您想要的文档:http://www.sqlalchemy.org/docs/orm/mapper_config.html#mapping-a-class-against-multiple-tables (7认同)
  • 我需要它只有一个对象,其中包含两个表的所有列. (3认同)