2011-04-11 91 views
0

在我们的开发服务器上,我们有MySql 5.5版,但是在生产服务器上(来自aruba.it),我们有Mysql 4.0.30。 SQL查询,导致的问题是:Mysql 4.0.30错误1046 ...但工作在5.5!

SELECT r.iduser,ra.desapp, r.cognom,f.desfig,r.fl_dip,(选择 总和(o.numore)/ 8从OreConsuntive O, Prjtask PT,Prjprogetti PP,Prjordini PO凡o.IDuser = '54'and o.dt_cns> = '20110101' 和 o.dt_cns < = '20110131' 和o.codcop =' F00' 和 ö .codtsk = pt.codtsk和 pt.codprj = pp.codprj和 pp.codord = po.codord和 左(po.cliatt,3)<> 'CSA' 组由 o.numore)作为TOTGIORNIFATTMESE FRO中号 Risorse R,图F,RisorsaArea RA WHERE r.codfig = f.codfig AND r.areapp = ra.codapp AND r.IDuser = '54' ORDER BY r.areapp降序

我'会尝试执行仅该部分

SELECT SUM(o.numore)/ 8 从OreConsuntive O,Prjtask PT, Prjprogetti PP,Prjordini PO凡 o.IDuser =' 54'and o.dt_cns > = '20110101'和o.dt_cns < ='20110131' 和'c.codcop ='F00'and o.codtsk = pt.codtsk and pt.codprj = pp.codprj and pp.codord = po.codord and left(po.cliatt,3)<>'CSA'group通过 o.numore

它似乎工作! 这个问题是否可以由被选中的选择引起? 如何修改我的查询来获得一个工作在MySQL 4.0.30?

非常感谢! Davide

回答

0

4.1之前的MySQL版本不支持子查询。你将不得不重写你的查询以避免这种情况。

不幸的是,我不能轻易地告诉你如何做到这一点,但请尝试阅读http://dev.mysql.com/doc/refman/4.1/en/rewriting-subqueries.html - 它可以帮助你重写它。

我不知道您的特定主机,但是如果他们无法将您升级到较新的MySQL,则应尝试降级您的开发服务器以运行与生产服务器相同的版本 - 很多事情自从4.0 ,并尽早抓住他们可能是一个好主意。

+0

我已经修复了一个额外的加入! 非常感谢! Davide – 2011-04-11 13:25:40