sqlalchemy生成的SQL未在Sybase上运行

时间:2012-06-05 07:18:15

标签: sqlalchemy sybase

sqlalchemy正在为我生成此查询:

SELECT INSTRUMENT_GROUP.id_imnt_grp AS "INSTRUMENT_GROUP_id_imnt_grp",INSTRUMENT_GROUP.nm_imnt_grp AS "INSTRUMENT_GROUP_nm_imnt_grp", INSTRUMENT_GROUP.type_imnt_grp AS "INSTRUMENT_GROUP_type_imnt_grp", anon_1."IMNT_GRP_MEMBERS_id_imnt_grp" AS "anon_1_IMNT_GRP_MEMBERS__1" FROM (SELECT IMNT_GRP_MEMBERS.id_imnt_grp AS "IMNT_GRP_MEMBERS_id_imnt_grp" FROM IMNT_GRP_MEMBERS WHERE 452 = IMNT_GRP_MEMBERS.id_imnt) AS anon_1 JOIN INSTRUMENT_GROUP ON INSTRUMENT_GROUP.id_imnt_grp = anon_1."IMNT_GRP_MEMBERS_id_imnt_grp" ORDER BY anon_1."IMNT_GRP_MEMBERS_id_imnt_grp"

但是,它不会通过sqlalchemy运行,通过pyodbc使用Sybase 15.5驱动程序。但是,它通过使用jconnect驱动程序的SQuirreL SQL运行良好。

任何想法为什么会这样或如何解决?

1 个答案:

答案 0 :(得分:0)

如果您正在执行INNER JOIN,请尝试通过在JOIN之前添加单词INNER来更改查询的JOIN部分。

anon_1 INNER JOIN INSTRUMENT_GROUP 
ON INSTRUMENT_GROUP.id_imnt_grp = anon_1."IMNT_GRP_MEMBERS_id_imnt_grp"

如果是LEFT或RIGHT OUTER JOIN,则也相应地更改它。例如,LEFT JOIN或RIGHT JOIN。