Oracle SQL: Actualizar una tabla con datos de otra tabla
Tabla 1:
id name desc
-----------------------
1 a abc
2 b def
3 c adf
Tabla 2:
id name desc
-----------------------
1 x 123
2 y 345
En oracle SQL, ¿cómo puedo ejecutar una consulta sql update que pueda actualizar la Tabla 1 con el nombre
y desc
de la Tabla 2 utilizando el mismo id
? Así que el resultado final que obtendría es
Tabla 1:
id name desc
-----------------------
1 x 123
2 y 345
3 c adf
La pregunta está tomada de https://stackoverflow.com/questions/5036918/sql-update-query-with-data-from-another-table, pero específicamente para oracle SQL.
232
3
Esto se llama una actualización correlacionada
Asumiendo que la unión resulta en una vista con clave preservada, también podría
pruebe con
Aquí parece haber una respuesta aún mejor con la cláusula 'in' que permite múltiples claves para la unión:
El ejemplo completo está aquí: http://forums.devshed.com/oracle-development-96/how-to-update-from-two-tables-195893.html
El problema está en tener las columnas que quieres usar como clave entre paréntesis en la cláusula where antes de 'in' y tener la sentencia select con los mismos nombres de columnas entre paréntesis. where (columna1,columna2) in ( select (columna1,columna2) from table where "el conjunto que quiero" );