2012-06-05 22 views
1
运行

SQLAlchemy的是产生这个查询我:SQLAlchemy的生成的SQL不上的Sybase

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运行良好。

任何想法,为什么这将是或如何解决?

+0

“*它不会运行*”不是有效的错误消息。什么不工作?任何错误消息?错误的结果? –

+0

在这里可能会有任何引起失败的语法怪癖,我在看那里“452 = ”,在那里我们需要切换一些后端。但是,我们在这里需要完整的错误信息。 Sybase是一个使用SQLAlchemy的小型后端,而Sybase本身就是一个较旧的,更古怪的数据库,所以在这里可能会出现很多问题。 – zzzeek

回答

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 JOIN或RIGHT JOIN。

+0

INNER关键字是可选的。 'JOIN'和'INNER JOIN'是一样的 –