Tôi muốn cập nhật nhiều cột trong một bảng dựa trên giá trị từ một bảng thứ hai sử dụng một tuyên bố Select
để có được những giá trị như thế này:SQL Update - Nhiều Cột
UPDATE tbl1
SET (col1, col2, col3) = (SELECT colA, colB, colC
FROM tbl2
WHERE tbl2.id = 'someid')
WHERE tbl1.id = 'differentid'
Tuy nhiên, nó dường như không như thể có thể 'SET' nhiều hơn một tên cột - có các lựa chọn thay thế thay vì viết các câu lệnh cập nhật riêng cho mỗi cột không?
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'
cả hai bảng không chia sẻ cùng một id, như đã thấy trong câu hỏi, vì vậy tôi có thể đặt một mệnh đề where cho b.id = 'someid' và tbl1.id = 'differentid' –