DELETE FROM `takes` WHERE ID, course_ID IN
(SELECT ID, course_ID FROM `takes` natural join `student`
where name = 'Jane' and course_ID='BIOL101')
从 takes
表中,我试图删除所有注册 BIOL101 的 Janes。
SELECT 为我提供了正确的 ID 和 course_ID 集,我只是想从 takes
表中删除它。无法找出正确的语法。
phpMyAdmin 给我错误:“#1093 - 您不能在 FROM 子句中指定要更新的目标表‘takes’”
最佳答案
不要考虑 [ab] 使用 IN
,而是使用适当的 DELETE..JOIN
MySQL 确实支持。
DELETE takes
FROM takes
JOIN student s
-- The relation/schema is unclear; adapt as required
-- but MAKE SURE A RELATION IS ESTABLISHED!
ON s.student_id = takes.student_id
WHERE s.name = 'Jane'
AND takes.course_ID = 'BIOL101'
另见 this answer .
关于mySQL 使用与另一张表自然连接的字段从一个表中删除?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23842527/