MySQL运行SQL报Error Code 1064语法错误如何修正代码
错误原因
- 1064语法错误的核心诱因是不符合MySQL JOIN语法规则:每个
LEFT JOIN操作后必须紧跟对应的ON关联条件,不能将所有表的关联条件统一放在最后一个JOIN之后 - 原有多表关联逻辑不合理:
Non_Ticketed_Events、Ticketed_Events均为Events的关联子表,需要分别关联到Events表,而非串行拼接JOIN
修正后可运行代码
SELECT C.ClientID, C.ClientName, EC.ClientID, EC.EventCode, E.EventCode, E.EventName, E.EventDate, NT.EventCode, T.EventCode FROM Events AS E LEFT JOIN Non_Ticketed_Events AS NT ON NT.EventCode = E.EventCode LEFT JOIN Ticketed_Events AS T ON T.EventCode = E.EventCode LEFT JOIN Event_Contact AS EC ON E.EventCode = EC.EventCode LEFT JOIN Client AS C ON EC.ClientID = C.ClientID ORDER BY E.EventDate ASC;
逻辑说明
- 调整主表为
Events,匹配查询活动关联的票务信息、联系人、客户信息的需求,返回结果更符合预期 - 若实际需求需要以
Non_Ticketed_Events作为主表,仅需将FROM后表名替换为Non_Ticketed_Events AS NT,第一个JOIN调整为LEFT JOIN Events AS E ON NT.EventCode = E.EventCode,后续关联逻辑保持不变即可
内容的提问来源于stack exchange,提问作者Raf Simmons
相关产品推荐
相关产品推荐

