【发布时间】:2015-03-10 14:19:42
【问题描述】:
我在 SqlAlchemy 中有两个表
class T1(Record, SqlBase):
__tablename__ = 'table1'
__table_args__ = (PrimaryKeyConstraint('column'), {'autoload': True},)
class T2(Record, SqlBase):
__tablename__ = 'table2'
__table_args__ = (PrimaryKeyConstraint('column'), {'autoload': True},)
我想在一些共同的列上加入这两个表
session.query(T1).join(session.query(T2), T1.column == T2.column)
但是我遇到了一个错误
InvalidRequestError: Could not find a FROM clause to join from. Tried joining to
... but got: Can't find any foreign key relationships
between 'T1' and 'FromGrouping object'. Perhaps you
meant to convert the right side to a subquery using alias()?
我该如何解决这个问题?两个表中都没有外键
【问题讨论】:
-
改用
session.query(T1).join(T2, T1.column == T2.column)。 -
@van 用于连接多个表 查询将是什么?
-
@SaifaliKaredia:对不起,我不明白这个问题。能否请您提供更多背景信息。
-
@van 如何在没有外键的 3 个表上进行内部联接?
-
@SaifaliKaredia:参见
join文档。您可以使用onclause参数显式指定JOIN 子句。示例(来自文档):q = session.query(User).join(Address, User.id==Address.user_id)
标签: python sql sqlalchemy