You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CodeIgniter查询关联groups表时出现MySQL Error 1064语法错误求助

MySQL Error 1064 语法错误(本地正常服务器报错)的解决方法

错误原因

groups是MySQL的保留关键字,如果托管服务器使用的是较低版本的MySQL(如5.6及更早),直接写groups as c会触发语法解析错误。本地环境可能用了更高版本的MySQL(对保留字的限制更宽松),所以能正常执行,但这种写法本身不符合标准SQL规范。

解决方法

  1. 用反引号`包裹保留字groups,让MySQL明确识别为表名
  2. 推荐使用显式JOIN语法替代旧的逗号分隔表的写法,代码可读性更强,也能避免潜在逻辑问题

修改后的模型代码

function get_all_query()
{
    $sql = "SELECT b.id,b.first_name,b.last_name,b.username,b.email,c.name,FROM_UNIXTIME(b.created_on) as created_on,b.active
            FROM users_groups as a 
            JOIN users as b ON a.user_id = b.id
            JOIN `groups` as c ON a.group_id = c.id";
    return $this->db->query($sql)->result();
}

验证说明

  • 反引号包裹groups后,低版本MySQL会正确解析这个表名
  • 显式JOIN语法更符合现代SQL编写习惯,也能清晰展示表之间的关联关系,降低后续维护成本

内容的提问来源于stack exchange,提问作者Denis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 18:36:24