2011-04-11 76 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