MySQL中左连接DELETE语句语法错误排查及修正建议咨询
MySQL DELETE JOIN语句语法错误分析及修正
问题原因
原语句的核心问题是没有明确指定要删除的目标表。在MySQL中,当DELETE语句结合JOIN使用时,必须明确告知数据库要删除哪个(或哪些)表中的记录,否则数据库无法识别操作对象,从而触发语法错误。你的语句逻辑是要删除table1中不存在table2匹配记录的数据,但未指定删除的是table1的记录。
修正后的SQL语句
直接在DELETE关键字后添加目标表的别名t1,明确指定要删除的是table1中的匹配记录:
delete t1 from table1 t1 left join table2 t2 on t1.Id = t2.id where t2.id is null
如果不用别名,也可以直接写表名:
delete table1 from table1 left join table2 on table1.Id = table2.id where table2.id is null
这两种写法都能实现你想要的逻辑:删除table1中与table2没有关联(t2.id为NULL)的记录。
内容的提问来源于stack exchange,提问作者Sri
相关产品推荐
相关产品推荐

