表被指定两次,既作为’UPDATE’的目标,又作为单独的数据源

我正在尝试更新列中的多行,但是当我执行查询获取错误时。 有人指导我错在哪里。 提前致谢

UPDATE TestTaker SET TestTaker.Email = 'Replaced' WHERE TestTaker.Id IN (SELECT TestTaker.Id FROM TestTaker INNER JOIN Questionnaire ON (TestTaker.id = Questionnaire.TestTaker_id) WHERE Questionnaire.Project_id IN(SELECT Project.Id FROM Project WHERE NAME LIKE 'abcd')); 

您在该查询中多次使用表’TestTaker’,因此您必须为该表分配“别名”,并且必须为您使用的每个列指定此别名。 或者尝试简化您的查询,如下所示。

 UPDATE TestTaker SET TestTaker.Email = 'Replaced' WHERE TestTaker.Id IN ( SELECT Questionnaire.TestTaker_id FROM Questionnaire WHERE (TestTaker.id = Questionnaire.TestTaker_id) AND Questionnaire.Project_id IN( SELECT Project.Id FROM Project WHERE NAME LIKE 'abcd') );