表格被指定两次,两者都作为'更新'的目标。并作为单独的数据来源

时间:2016-05-06 11:24:26

标签: c# mysql database

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

  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'));

1 个答案:

答案 0 :(得分:3)

您在该查询中多次使用表'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')
                        );