0
即时尝试执行此查询,但我得到错误#1064。MySQL - 删除从子查询
delete from tableABC WHERE ID in (select ID from `TABLEXYZ` where `qty` = 0);
但以下语句的工作
SELECT * FROM tableABC WHERE在ID(从
TABLEXYZ
选择ID其中qty
= 0);
即时尝试执行此查询,但我得到错误#1064。MySQL - 删除从子查询
delete from tableABC WHERE ID in (select ID from `TABLEXYZ` where `qty` = 0);
但以下语句的工作
SELECT * FROM tableABC WHERE在ID(从
TABLEXYZ
选择ID其中qty
= 0);
下面是答案:
使用删除查询与子查询具有where条件,请执行以下操作:
DELETE a FROM `tableABC` AS a JOIN (SELECT ID FROM `tableXYZ` WHERE `qty`=0) as b on b.ID = a.ID
这是对的 - 关键部分是通过命名子查询'b'来强制它保存到一个临时表(由sql引擎无形地处理)。要使用子查询执行删除,必须暂时保留子查询。 – RobP 2014-12-06 08:00:02
然后怎么样'从tableABC删除其中ID(选择来自TABLEXYZ的ID,其中qty = 0);' – 2014-12-06 06:34:28
我的查询有什么区别?它只是缺少反拨 – nuttynibbles 2014-12-06 07:37:34