16
私はこのような値を得ることがSelect
文を使用して、第2のテーブルからの値に基づいて、テーブルに複数の列を更新したいと思います:SQLアップデート - 複数列
UPDATE tbl1
SET (col1, col2, col3) = (SELECT colA, colB, colC
FROM tbl2
WHERE tbl2.id = 'someid')
WHERE tbl1.id = 'differentid'
はしかし、それはいないようです複数のカラム名を 'SET'することが可能ですが、各カラムごとに別々の更新文を書くのではなく、選択肢がありますか?
UPDATE tbl1
SET col1 = (SELECT colA FROM tbl2 WHERE tbl2.id = 'someid')
WHERE tbl1.id = 'differentid'
UPDATE tbl1
SET col2 = (SELECT colB FROM tbl2 WHERE tbl2.id = 'someid')
WHERE tbl1.id = 'differentid'
UPDATE tbl1
SET col3 = (SELECT colC FROM tbl2 WHERE tbl2.id = 'someid')
WHERE tbl1.id = 'differentid'
を問題に見られるように、両方のテーブルには、同じIDを共有していないので、私はどこb.idための句は、=「someid」を置くことができますとtbl1.id = 'differentid' –