我不明白如何使用交叉联接连接两个表。早些时候,在 sqlalchemy 版本 1.1.4 中,我这样做:
A = Table1.sa
B = Table2.sa
my_query = A.query().join(B, literal(True))
Run Code Online (Sandbox Code Playgroud)
但更新到 1.3 版本后,出现异常:
sqlalchemy.exc.InvalidRequestError:无法确定从哪个 FROM 子句加入,有多个 FROM 可以加入到该实体。尝试添加显式 ON 子句以帮助解决歧义。
我明白这意味着我必须做这样的事情:
my_query = A.query().join(B, A.fireign_key_id = B.id)
Run Code Online (Sandbox Code Playgroud)
但是表A没有表B的外键。
如何使用交叉连接而不使用外键连接两个表?谢谢。
感谢您的所有回答。引发异常,因为查询无法确定剩下哪个表,并且在 query(...) 中使用表 B 的字段。在我显式指示左表后,此异常消失了。
my_query = A.query(...).join(B, A.id != None)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7295 次 |
| 最近记录: |