所以我通过SQLAlchemy连接到一个postgresql数据库,我想执行一个用户定义的函数,并将表作为参数。本质上,我试图将以下查询转换为SQLAlchemy:
第一个月
my_udf接受三个表参数并返回布尔值true或false。
到目前为止我已经
table1_alias=aliased(Table1)
table2a_alias=aliased(Table2)
table2b_alias=aliased(Table2)
results=sql_session.query(table1_alias)
.join(table2a_alias, table2a_alias.col1==table1_alias.col1)
.join(table2b_alias, table2b_alias.col1==var)
.filter(func.my_udf(table1_alias,table2a_alias,table2b_alias))
字符串
表1和表2是表Map。这给了我一个异常sqlalchemy.exc。ArgumentError:SQL表达式元素预期,得到<AliasedClass at 0x 7 f8 de 1aef 5d 0; Table 1>。是否有任何参数的AliasedClass我应该使用?
1条答案
按热度按时间cwxwcias1#
字符串
你可以使用text函数直接将sql修改为生成的查询,如果你命名了别名,你可以在生成的sql中通过名字引用它们,这样就完全绕过了类型检查。