2016-05-06 7 views
1

列内の複数の行を更新しようとしていますが、誰かが私が間違っているところを案内します。あなたがそのテーブルのための「別名」を割り当てる必要があり、あなたが使用してどこにすべての列に対して、このエイリアスを指定する必要がありますので、あなたは、そのクエリで「TestTaker」複数回のテーブルを使用している事前テーブルは 'UPDATE'のターゲットとデータの別のソースの両方として2回指定されています

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

どのようなエラーが表示されますか? – MarkB

+0

クエリにエラーがありますか?あなたは何のエラーを取得していますか? –

+0

@ MarkB 'テーブルは' UPDATE 'のターゲットとデータの別のソースの両方として2回指定されています。ここではエラーです。 – MaxMini

答えて

3

に感謝します。 または、次のようなクエリを簡略化してみてください。

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

ありがとうございました。あなたは私のproblem.Itを解決しました:) – MaxMini

関連する問題