码迷,mamicode.com
首页 > 数据库 > 详细

mysql报【unknown table in mulit delete】错的原因和解决办法

时间:2020-01-30 09:34:18      阅读:80      评论:0      收藏:0      [点我收藏+]

标签:div   语法   ble   错误   project   sele   select   没有   访问   

今天写一个多表连接删除的DELETE语句,在执行的时候发现报错:unknown table in mulit delete,这里记录下原因。

原来报错的DELETE语句:

delete sys_project
from sys_project as aa
left join (
    select min(id) as id from sys_project 
    group by sysCode
) as bb
on aa.id = bb.id
where bb.id is null

要注意的是,这样的语法在SQL Server是支持的,并不会报错。

实际上,这是因为MySQL限制了,如果你为一个表指定了别名,那么当你再次使用这个表的时候,必须通过别名来使用该表。在上面的DELETE语句中,我给sys_project指定了别名aa,可是之后再次使用sys_project表的时候却没有通过别名aa去访问该表,因此MySQL就会报出这个在删除多行时找不到表的错误。

修改的方法只要将sys_project表的直接使用改为使用别名aa访问即可:

delete aa
from sys_project as aa
left join (
    select min(id) as id from sys_project 
    group by sysCode
) as bb
on aa.id = bb.id
where bb.id is null

这就是MySQL报【unknown table in mulit delete】错的原因和解决方法。

 

"很多时候我们是因为害怕失去,才不敢去拥有,然而有生之年,往往是一边得到,一边失去。"

mysql报【unknown table in mulit delete】错的原因和解决办法

标签:div   语法   ble   错误   project   sele   select   没有   访问   

原文地址:https://www.cnblogs.com/yanggb/p/11158827.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!