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

MySQL高级查询报错1064:SQL语法错误求助

修正你的MySQL SQL语法错误

我帮你拆解下这段SQL里的几个关键语法问题,然后给出修正后的可用代码:

核心错误点

  • 列分隔符误用:SELECT子句里你用了WITH来分隔列,这是完全错误的写法,MySQL里列之间必须用逗号,分隔。
  • 表名格式错误:MySQL不支持用[ORDERS]这种方括号包裹表名(这是SQL Server的写法),直接写ORDERS即可,若表名是关键字才需要用反引号`ORDERS`包裹。
  • 表别名拼写错误:你把订单表的别名写成了数字0(零),但后续引用的是字母O,两处的0都要改成字母O。
  • JOIN条件运算符错误:RIGHT JOIN里的C.CustomerID-O.CustomerID用了减号-,应该是等于号=来匹配关联字段。

修正后的SQL代码

SELECT C.CustomerID, C.CustomerName, O.OrderDate, O.TotalOrderAmount
FROM CUSTOMERS C
LEFT JOIN ORDERS O ON C.CustomerID = O.CustomerID
UNION
SELECT C.CustomerID, C.CustomerName, O.OrderDate, O.TotalOrderAmount
FROM CUSTOMERS C
RIGHT JOIN ORDERS O ON C.CustomerID = O.CustomerID;

补充说明:MySQL本身不支持FULL OUTER JOIN,所以用LEFT JOIN + UNION + RIGHT JOIN的方式来实现全外连接是合理的;如果需要保留重复行,可以把UNION换成UNION ALL。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:02:30