MySQL查询上运行v4.1.22不错,但在V5.x中

问题描述:

不工作我有执行下面的MySQL查询的应用:MySQL查询上运行v4.1.22不错,但在V5.x中

  SELECT 402 AS user_id, 
       p.id AS perm_id, 
       p.name AS perm_name, 
       lc.business_division_id, 
       bd.name AS bd_name, 
       bd.current_cycle, bd.current_moon, 
       lc.name AS cycle_name, 
       lc.milestone_date, 
       lc.scorecard_date, 
       bdm.name AS meta_name, 
       bdm.value AS meta_value 
      FROM lc_vc_cg_353.business_division bd, 
       lc_vc_cg_353.business_division_meta bdm, 
       lc_vc_cg_353.lunar_cycle lc 
LEFT OUTER JOIN lc_vc_cg_353.permissions ps 
        ON ps.user_id = 402 AND ps.business_division_id = bd.id inner 
      join lc_vc_central.permission p 
        ON ((ps.privilege_id IS NOT null AND p.id = ps.privilege_id) 
         OR 
         (ps.privilege_id IS NULL AND p.id = 1024)) 
      WHERE 
       bd.active = 1 
        AND 
       bdm.business_division_id = bd.id 
        AND 
       lc.business_division_id = bd.id 
        AND 
       lc.id = bd.current_cycle 
     ORDER by bd.name asc; 

生产服务器工作正常,并正在运行MySQL v4.1.22(红帽),但是当我在运行MySQL v5.1.43社区的Windows计算机上执行相同的查询时,它会出现以下错误:

错误1054(42S22):'on子句'中的未知列'bd.id'

对这个问题可能有什么想法?是否在新版本的MySQL中已经弃用了特定的语法?

任何帮助将不胜感激。

我通过在Windows机器上安装MySQL v4.1.22来解决这个问题。

您应该检查模式是否匹配。

business_division在Windows系统上是否有id列?

我假设数据库名称(例如lc_vc_cg_353)也匹配。

我在语法中看不到任何明显的东西。