在我们的开发服务器上,我们有MySql版本5.5,但在生产服务器上(来自aruba.it)我们有Mysql 4.0.30。 导致问题的SQL查询是:
SELECT r.iduser,ra.desapp, r.cognom,f.desfig,r.fl_dip,(选择 sum(o.numore)/ 8来自OreConsuntive o, Prjtask pt,Prjprogetti pp,Prjordini po其中o.IDuser ='54'和o.dt_cns> ='20110101'和 o.dt_cns< ='20110131'和o.codcop ='F00'和 o.codtsk = pt.codtsk和 pt.codprj = pp.codprj和 pp.codord = po.codord和 左(po.cliatt,3)<>'CSA'组由 o.numore)作为TOTGIORNIFATTMESE来自 Risorse r,图f,RisorsaArea ra 在哪里r.codfig = f.codfig AND r.areapp = ra.codapp AND r.IDuser = '54' ORDER BY r.areapp desc
我会尝试只执行这部分
选择总和(o.numore)/ 8 来自OreConsuntive o,Prjtask pt, Prjprogetti pp,Prjordini po Where o.IDuser ='54'和o.dt_cns> = '20110101'和o.dt_cns< ='20110131' 和o.codcop ='F00'和 o.codtsk = pt.codtsk和 pt.codprj = pp.codprj和 pp.codord = po.codord和 左(po.cliatt,3)<>'CSA'组由 o.numore
它似乎工作! 这个问题可能是由ann选择引起的吗? 如何修改我的查询以获得mysql 4.0.30上的工作?
非常感谢! 的Davide
答案 0 :(得分:0)
4.1之前的MySQL版本不支持子查询。您将不得不重写您的查询以避免这种情况。
不幸的是,我不能轻易告诉你如何做到这一点,但请尝试阅读http://dev.mysql.com/doc/refman/4.1/en/rewriting-subqueries.html - 它可能会帮助你重写它。
我不知道您的特定主机,但如果他们无法将您升级到更新的MySQL,您应该尝试降级开发服务器以运行与生产服务器相同的版本 - 自4.0以来,很多事情都发生了变化,及早抓住它们可能是一个好主意。