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