当我运行这个:

DELETE FROM folders AS fo
LEFT OUTER JOIN files AS fi
ON fo.folderId = fi.folderId
WHERE fi.folderId IS NULL AND (fo.folderId IN (63,1000))


...我收到语法错误:


  #1064-您的SQL语法有误;检查与您的MySQL服务器版本相对应的手册以使用正确的语法
  靠近'AS FO左外连接文件AS FO上fo.folderId = fi.folderId
  在第一行进行折页


该代码基于SELECT查询,该查询返回预期的行。错误消息的原因是什么?

最佳答案

它“不起作用”也就不足为奇了。当我运行您的代码时,出现语法错误:


  SQL错误(1064):您的SQL语法有错误;检查
  与您的MySQL服务器版本相对应的手册
  在'AS FO LEFT OUTER JOIN文件AS AS ON ON fo.folderId附近使用的语法
  = fi.folderId WHERE fi.fold'在第1行


correct syntax是:

DELETE fo -- Note I've added table name
FROM folders AS fo
LEFT OUTER JOIN files AS fi
ON fo.folderId = fi.folderId
WHERE fi.folderId IS NULL AND (fo.folderId IN (63,1000));

关于mysql - 多表删除时的语法错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15430958/

10-11 01:29