0

我正在尝试使用另一个表中的字段来更新一个表:

Update x
From y
Set 1=y.1, 2=y.2, 3=y.3
Where y.4="*Cash*" and y.5="*Use*"

这可能吗?还是我必须使用内部联接或子查询?我的更新语法中不断出现错误:“缺少或无效选项”。

4

1 回答 1

2

你似乎在要求类似的东西

UPDATE x
   SET (col1, col2, col3) = (select y.col1, y.col2, y.col3
                               from y
                              where y.col4 = '*Cash*'
                                and y.col5 = '*Use*')

通常,会有一些附加条件与表格xy. 如果针对的查询y返回单行,并且您想x使用该单行数据更新每一行,则没有必要。但通常情况下,你会有类似的东西

UPDATE x
   SET (col1, col2, col3) = (select y.col1, y.col2, y.col3
                               from y
                              where y.col4 = '*Cash*'
                                and y.col5 = '*Use*'
                                and x.someKey = y.someKey)

如果您只想更新x其中具有匹配行的行y

UPDATE x
   SET (col1, col2, col3) = (select y.col1, y.col2, y.col3
                               from y
                              where y.col4 = '*Cash*'
                                and y.col5 = '*Use*'
                                and x.someKey = y.someKey)
 WHERE EXISTS( select 1
                 from y
                where y.col4 = '*Cash*'
                  and y.col5 = '*Use*'
                  and x.someKey = y.someKey)
于 2012-11-21T16:02:46.903 回答