表指定两次,既作为'UPDATE'的目标,也作为数据的单独源 [英] Table is specified twice, both as a target for 'UPDATE' and as a separate source for data

查看:221
本文介绍了表指定两次,既作为'UPDATE'的目标,也作为数据的单独源的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想更新列中的多个行,但是当我执行查询获取错误。有人指导我错在哪里。提前感谢

I am trying to update multiple rows in a column but when I execute query getting error. Somebody guide me where I am wrong. Thanks in advance

  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'查询,因此您必须为该表分配一个别名,并且必须为每个列指定此别名。
或尝试简化如下所示的查询。

You are using table 'TestTaker' multiple times in that query, so you have to assign a 'alias' for that table and have to specify this alias for every columns wherever you using. Or try to simplify your query like the below one.

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

这篇关于表指定两次,既作为'UPDATE'的目标,也作为数据的单独源的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆