来自2个表的WHERE子句的UPDATE语句

时间:2014-04-24 15:51:13

标签: sql set sql-update where

寻找关于如何对表执行更新的一些建议,但是我的2个WHERE语句来自不同的表。这就是我的想法:

UPDATE table1
SET table1.t1field=('new parameter');
FROM table1
WHERE table1.t1field > ('parameter') 
INNER JOIN
table 2
ON table2.t2field  = ('my other parameter');

基本上,我想要做的是更新X,其中X = myparameter(来自表1)和myparameter2(来自表2)。

我的语法是否正确?如果我在新参数之后取出分号,我得到一个“SQL命令没有正确结束”错误,但是留下它,我认为它正在尝试更新表中的所有内容!显然我不想要这个,我只想要它更新那个参数,如果它符合2个标准。

感谢您提供任何帮助。

2 个答案:

答案 0 :(得分:0)

应该是以下内容:

UPDATE table1
INNER JOIN table2
ON table2.join_field = table1.join_field
SET table1.t1field=('new parameter'), table2.t2field  = ('my other parameter')
FROM table1
WHERE table1.t1field > ('parameter');

答案 1 :(得分:0)

使用join进行更新查询的正确语法如下:

UPDATE t1
SET t1.[column]=[value]
FROM table1 t1 INNER JOIN table2  t2 ON [join condition]
WHERE [conditions]