valores update una tabla otra insertar inner datos con actualizar sql database

sql - insertar - update de una tabla a otra oracle



actualizar una tabla con datos de otra (5)

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

¿Cómo ejecuto una consulta de actualización SQL que puede actualizar la Tabla 1 con el nombre y la descripción de la Tabla 2 usando la misma identificación? Entonces, el resultado final que obtendría es

Tabla 1:

id name desc ----------------------- 1 x 123 2 y 345 3 c adf

¿Cómo puede hacerse esto por:

  • servidor SQL
  • MySQL
  • PostgreSQL
  • Oráculo

Intenta seguir el código. Me está funcionando ...

UPDATE TableOne SET field1 =(SELECT TableTwo.field1 FROM TableTwo WHERE TableOne.id=TableTwo.id), field2 =(SELECT TableTwo.field2 FROM TableTwo WHERE TableOne.id=TableTwo.id) WHERE TableOne.id = (SELECT TableTwo.id FROM TableTwo WHERE TableOne.id = TableTwo.id)


Oracle 11g R2:

create table table1 ( id number, name varchar2(10), desc_ varchar2(10) ); create table table2 ( id number, name varchar2(10), desc_ varchar2(10) ); insert into table1 values(1, ''a'', ''abc''); insert into table1 values(2, ''b'', ''def''); insert into table1 values(3, ''c'', ''ghi''); insert into table2 values(1, ''x'', ''123''); insert into table2 values(2, ''y'', ''456''); merge into table1 t1 using (select * from table2) t2 on (t1.id = t2.id) when matched then update set t1.name = t2.name, t1.desc_ = t2.desc_; select * from table1; ID NAME DESC_ ---------- ---------- ---------- 1 x 123 2 y 456 3 c ghi

Ver también Oracle - Declaración de actualización con unión interna .


Para MySql:

UPDATE table1 JOIN table2 ON table1.id = table2.id SET table1.name = table2.name, table1.`desc` = table2.`desc`

Para el servidor Sql:

UPDATE table1 SET table1.name = table2.name, table1.[desc] = table2.[desc] FROM table1 JOIN table2 ON table1.id = table2.id


Utilice el siguiente bloque de consulta para actualizar Table1 con Table2 basado en ID:

UPDATE Table1, Table2 SET Table1.DataColumn= Table2.DataColumn where Table1.ID= Table2.ID;

Esta es la forma más fácil y rápida de abordar este problema.


UPDATE table1 SET `ID` = (SELECT table2.id FROM table2 WHERE table1.`name`=table2.`name`)