query - Actualización de SQL-Columnas múltiples
update con select access (2)
Me gustaría actualizar varias columnas en una tabla basada en los valores de una segunda tabla utilizando una declaración Select
para obtener los valores como este:
UPDATE tbl1
SET (col1, col2, col3) = (SELECT colA, colB, colC
FROM tbl2
WHERE tbl2.id = ''someid'')
WHERE tbl1.id = ''differentid''
Sin embargo, no parece que sea posible ''ESTABLECER'' más de un nombre de columna. ¿Hay alternativas en lugar de escribir instrucciones de actualización separadas para cada columna?
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''
Esto debería funcionar -
Update Tbl1
SET
Col1 = B.ColA,
Col2 = B.ColB,
Col3 = B.ColC
FROM
Tbl2 B
Where
B.Id = ''Someid''
update tbl1
set col1 = a.col1, col2 = a.col2, col3 = a.col3
from tbl2 a
where tbl1.Id = ''someid''
and a.Id = ''differentid''