我有一個包含3個表(student,class和student_class)的數據庫。在類表中有一些類的刪除時間設置爲NOT NULL。我想更新這些課程的學生到當前時間的刪除時間。SQL:我的查詢出了什麼問題
短表架構如下:
學生(ID,姓名,...,delete_time)
類(ID,姓名,...,delete_time)
student_class(ID,studentId,CLASSID)
查詢我想:
UPDATE student SET delete_time = now() WHERE id IN (
SELECT student.id FROM student, student_class,class WHERE
student.id = student_class.studentId AND
student_class.classId= class.id AND
class.delete_time IS NOT NULL
,但它沒有工作,我得到了一個錯誤說:
#1093 - 表'tbl_student'被指定兩次,既作爲'UPDATE'的目標,也作爲數據的獨立源,是否有任何查詢?
update student s join student_class sc on s.id = sc.studentid join class c on c.id = sc.classid set s.delete_time = now() where c.delete_time is not null;
注:
您是否嘗試從「FROM」子句中刪除學生? –
我在任何地方都看不到'tbl_student',而且你錯過了一個右括號。什麼是目標數據庫系統(SQL Server?MySql?Oracle?) –
如果您使用的是MySQL,它可能是http://stackoverflow.com/questions/45494 –