別のフィールドのフィールドを使用して、あるテーブルを更新しようとしています。
Update x
From y
Set 1=y.1, 2=y.2, 3=y.3
Where y.4="*Cash*" and y.5="*Use*"
これは可能ですか?または、内部結合またはサブクエリを使用する必要がありますか?更新構文で「オプションがないか無効です」というエラーが発生し続けます。
あなたは次のようなものを求めているようです
UPDATE x
SET (col1, col2, col3) = (select y.col1, y.col2, y.col3
from y
where y.col4 = '*Cash*'
and y.col5 = '*Use*')
通常、テーブルx
とを関連付けるいくつかの追加条件がありy
ます。に対するクエリ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)