我有一个包含游戏中生物的数据库。您无法在FROM子句中指定目标表'生物'进行更新
2表:
“creature_template”含有相对于生物
“生物”包含关于在游戏中的生物的位置的信息的所有数据。
下面是代码:
DELETE FROM
creature
WHERE
id not in
(SELECT DISTINCT
b.id
FROM
creature_template a inner join creature b on a.entry = b.id
WHERE
b.map != 571
AND a.`type` = 1
AND a.`type` = 10
);
的类型是生物的种类(1 =兽,10 =不指定)
我想要做的是删除所有的生物,在地图上#571并且不是野兽(类型= 1)或未指定(类型= 10)。
“map”列在“creature”表中,而“type”列在“creature_template”表中。
游戏中的每个生物都通过ID在数据库中被识别。 “生物”表有一个名为“ID”的列,其中包含这些ID,而“creature_template”表中的等价物是名为“entry”的列。
所以我必须做的是选择地图上的所有生物#571,然后排除所有的类型1和10并删除其余的。
问题是,当我执行上面的代码,我得到的错误说
我做了几个研究在这里计算器“你不能在FROM子句指定目标表‘生物’更新”和尝试了一些我找到的解决方案。
...我最终删除了“生物”表中的所有数据。幸运的是,我从昨天做的备份中获得了数据。
任何想法如何解决我的问题?
如果您愿意,可以考虑遵循以下简单的两步操作步骤:1.如果您尚未这样做,请提供适当的CREATE和INSERT语句(和/或sqlfiddle),以便我们可以更轻松地复制问题。 2.如果您尚未这样做,请提供与步骤1中提供的信息相对应的所需结果集。 – Strawberry