使用UPDATE选择nidificate

时间:2015-07-16 13:51:44

标签: sql sql-server

执行此查询时,错误结果为:

  

多部分标识符" table2.column1"无法受约束。

我必须使用INNER JOIN吗?如果是的话,在哪里?

UPDATE table1 
SET table1.column1 = 1 
WHERE table1.column2 = 'Example' 
  AND table2.column1 = (SELECT table2.column1  
                        FROM table2 
                        WHERE table2.column2 = 'anotherExample');

谢谢你,对不起我的英语(我是意大利语)。

2 个答案:

答案 0 :(得分:0)

使用内连接,更容易

UPDATE t1
    SET t1.column1 = 1 
    FROM table1 t1
    INNER JOIN table2 t2
         ON t1.column1 = t2.column1
    WHERE t1.column2='Example' 
          AND t2.column2 = 'anotherExample';

答案 1 :(得分:0)

这是问题所在:

UPDATE table1
    SET table1.column1 = 1 
    WHERE table1.column2 = 'Example' AND
          table2.column1= (SELECT table2.column1 FROM table2 WHERE table2.column2 = 'anotherExample');
----------^

我假设你想要来自table1的东西:

UPDATE table1
    SET table1.column1 = 1 
    WHERE table1.column2 = 'Example' AND
          table1.columnX = (SELECT table2.column1
                            FROM table2
                            WHERE table2.column2 = 'anotherExample');

您的SQL实际上是标准SQL,应该适用于任何数据库。