• Aviso Legal
  • About

Bienvenidos al Blog de David Rodriguez

Update con select – Actualizar campos de una tabla con los valores de otra

agosto 13, 2008 3:19 pm / 2 Comments / David Rodriguez

Hay veces que perdemos tiempo en hacer unos script para cosas que se pueden hacer con una simple sentencia de base de datos. Imaginemos el caso:

Tabla1 con las columnas id,campo1,campo2

Tabla2 con las columnas id,id1,id2

y queremos actualizar todos los campos id1 con el valor de campo1 y todos los campos id2 con el valor de campo2. La tabla tiene la relación por el campo id.

Ejemplo:

Tabla1

1 valor1 valor2

2 valor5 valor6

Tabla2

1 registro1 registro2

1 registro3 registro4

2 registro5 registro6

Con la siguiente consulta:

update Tabla1 t1,Tabla2 t2

set t2.id1=t1.campo1,t2.id2=t1.campo2

where t1.id=t2.id

Con este update, actualizariamos los registros para cada identificador. Es decir, el resultado sería:

Tabla1

1 valor1 valor2

2 valor5 valor6

Tabla2

1     valor1 valor2

1     valor1 valor2

2     valor5 valor6

Espero os sea de ayuda.

Posts relacionados

  • como ejecutar mysql desde el terminar de MAC con MAMP
  • como acceder a mysql con usuario root en plesk
  • Error Mysql 1030 Got error 134 from storage engine
  • configuracion MATCH AGAINST en MySQL para menos de 4 caracteres
  • Optimizacion de consultas sql con lower y trim
Posted in: Base de datos / Tagged: actualizacion, Base de datos, bbdd, select, update, update select

2 Thoughts on “Update con select – Actualizar campos de una tabla con los valores de otra”

  1. daniel on junio 24, 2013 at 5:44 pm said:

    UPDATE Cliente
    INNER JOIN (SELECT Nreg, count(id) total FROM [Máquinas] GROUP BY [Máquinas].nreg)
    t1 ON t1.nreg = Cliente.nreg
    SET Cliente.Cant_Maq = t1.total;

    Me da error de sintaxis cerca de Inner
    me da error de sistaxis cerca de T1

    Ayuda por favor
    Gracias

  2. David Rodriguez on junio 25, 2013 at 7:35 am said:

    Con un update no puedes hacer un inner join.
    Deberia ser algo así
    UPDATE Cliente, (SELECT Nreg, count(id) total FROM [Máquinas] GROUP BY [Máquinas].nreg)
    t1
    SET Cliente.Cant_Maq = t1.total
    WHERE t1.nreg = Cliente.nreg;

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Post Navigation

← Previous Post
Next Post →

Categorias

  • Base de datos
  • Empresas
  • Internet
  • Mac
  • marketing
  • Otros
  • Prensa
  • Programacion
  • Redes Sociales
  • Retos deportivos
  • Seguridad
  • SEO
  • servidores
  • SPAM
  • Uncategorized
© Copyright 2025 - Blog de David Rodriguez