SQL语句删除表MYSQL中的多个字段

时间:2014-10-07 03:09:29

标签: mysql sql

我终于可以解决DELETE CASCADE了。对于这些表格。

http://subefotos.com/ver/?a6f811bfb78e9aa78ffe43adb1f3cf5do.png

现在......我需要删除AlergiaTipo上的所有行,这些似乎与ALERGIA桌上的alergiagrupo有关。 我发表了这个声明。

delete from alergiatipo where ID in (select alergiatipo.ID from alergia,alergiatipo where
alergia.AlergiaTipo_ID = alergiatipo.iD and alergia.ID in (select alergia.ID from 
alergia,alergiagrupo where alergia.AlergiaGrupo_ID = alergiagrupo.ID AND 
alergiagrupo.ID = '2'));

但是回复此错误

Error Code: 1093. You can't specify target table 'alergiatipo' for update in FROM clause

1 个答案:

答案 0 :(得分:1)

这是delete join具有正确的delete from alergiatipo where ID in (select alergiatipo.ID from alergia join alergiatipo on alergia.AlergiaTipo_ID = alergiatipo.iD where alergia.ID in (select alergia.ID from alergia join alergiagrupo on alergia.AlergiaGrupo_ID = alergiagrupo.ID where alergiagrupo.ID = '2' ) ); 语法:

update

在MySQL中,您无法在deletedelete alt from alergiatipo alt join alergia a on a.AlergiaTipo_ID = alt.iD join alergiagrupo ag on a.AlergiaGrupo_ID = ag.ID where ag.ID = 2; 的其他位置指定要删除的表格。此外,您的删除相当过度。我想你只想要以下内容:

2

我还删除了{{1}}周围的单引号。我猜这个列是一个整数,所以你应该使用整数常量而不是字符串常量。