代码之家  ›  专栏  ›  技术社区  ›  gotnull mzelina

MySQL查询在v4.1.22上运行良好,但在v5.x上不起作用

  •  1
  • gotnull mzelina  · 技术社区  · 16 年前

    我有一个执行以下MySQL查询的应用程序:

             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(Redhat),但是,当我在运行MySQL v5.1.43-community的Windows计算机上执行相同的查询时,出现以下错误:

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

    任何帮助都将不胜感激。

    2 回复  |  直到 15 年前
        1
  •  1
  •   Phil Wallach    16 年前

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

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

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

        2
  •  0
  •   gotnull mzelina    16 年前

    我通过在Windows计算机上安装MySQL v4.1.22修复了这个问题。

    推荐文章