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)也匹配。
我在语法中看不到任何明显的东西。