我试过了
DELETE FROM installments
WHERE EXISTS (SELECT * FROM `installments`
JOIN student
ON installments.s_id=student.s_id
WHERE installments.curr_sem=3
AND student.bat_id=10 AND student.p_id=170 AND student.DeleteStatus=0);
但显示错误
#1093 - 无法在 FROM 子句中指定要更新的目标表"分期付款"
请帮助我
使用 DELETE JOIN 尝试此解决方案:
DELETE
i
FROM
installments i JOIN student s USING (s_id)
WHERE
i.curr_sem=3 AND
s.bat_id=10 AND
s.p_id=170 AND
s.DeleteStatus=0
语句的正确形式如下:
DELETE installments.*
FROM installments
JOIN student ON installments.s_id=student.s_id
WHERE installments.curr_sem=3
AND student.bat_id=10
AND student.p_id=170
AND student.DeleteStatus=0;
如果我理解正确,您只想删除与加入条件匹配的分期付款记录。您可以使用联接条件删除或更新一个表中的记录,并且不需要嵌套选择。
如果您正在使用工作台,则必须禁用安全模式,否则如果未在其中指定键列,则可能会出现错误。
让我得到您的反馈
问候