2011-07-22 11 views
6

que pueda hacer lo siguiente para insertar registros en una tabla a partir de una selección en otra tabla:¿Actualizar desde seleccionar con múltiples campos?

INSERT INTO table (field1, field2) SELECT field1,field2 FROM table2 

¿Puedo hacer lo mismo con una actualización ?? Algo como esto (no funciona!):

UPDATE table SET field1=table2.field1, field2=table2.field2 SELECT field1,field2 FROM table2 
WHERE table.field0=table2.field0 

sé cómo hacer esto con sólo 1 campo, pero hay una manera de hacerlo con múltiples campos?

+0

Duplicar Posible ... http://stackoverflow.com/questions/2334712/sql-server-update-from-select – RiddlerDev

Respuesta

11
UPDATE table A INNER JOIN table2 B USING (field0) 
SET A.field1 = B.field1,A.field2 = B.field2; 
+0

¿de dónde viene 'field0'? –

-1

Sí, como este:

UPDATE table SET 
field1=(select field1 from table2 WHERE field0=table1.field0) 
field2=(select field2 from table2 WHERE field0=table1.field0) 
-- WHERE some condition (optional) 
+0

no esta ejecución la misma consulta dos veces, pero solo devuelve diferentes atributos cada vez – ErJab

Cuestiones relacionadas