我正在从这些wikibooks pages学习sql,我正在尝试使用mysql语法回答最后一个问题“从饱和仓库中删除所有框”。以下是我自己提出的主要是使用同一页面的先前答案。
delete from Boxes as b
where b.Warehouse in (
select w.Code
from ( select *
from Warehouses) as w
where w.Capacity < ( select count(*)
from Boxes bb inner join Warehouses ww
on bb.Warehouse = ww.Code
group by bb.Contents) ) ;
网站上对此问题的查询正在生成
this solution doesn't work with mysql 5.0.67
ERROR 1093 (HY000): You can't specify target table 'Boxes' for update in FROM clause
这就是为什么我使用多个子查询来解决这个mysql消息的方法。但是,我的查询中有错误,因此它没有运行。
错误代码:1064。您的SQL语法有错误;检查 手册,对应右边的MySQL服务器版本 语法在'as b where b.Warehouse in附近使用(选择w.Code
来自(第1行有什么想法吗?
答案 0 :(得分:0)
我认为您的仓库表从一列返回(因为*使用)。将*替换为您希望从中获取输出的列。
答案 1 :(得分:0)
我假设Boxes和Warehouse是表格,你给Boxes一个别名并在Warehouse表格上使用它,这可能就是为什么它没有用。也许你应该在&#39;删除之后尝试使用查询。