Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Update de datos entre dos tablas

Estas en el tema de Update de datos entre dos tablas en el foro de Mysql en Foros del Web. Hola: Estoy seguro que el tema debe haberse tratado muchísimas veces pero no lo encuentro claro ya que no tengo suficientes conocimientos. Explico el trabajo ...
  #1 (permalink)  
Antiguo 28/04/2016, 18:56
 
Fecha de Ingreso: abril-2015
Mensajes: 3
Antigüedad: 9 años
Puntos: 0
Update de datos entre dos tablas

Hola: Estoy seguro que el tema debe haberse tratado muchísimas veces pero no lo encuentro claro ya que no tengo suficientes conocimientos. Explico el trabajo que quiero hacer en una base de datos mysql.

En dicha base tengo dos tablas una "rensco" y otra llamada "padron". Ambas tienen diferentes campos y distinta cantidad de registros. La primera tiene un campo denominado codigo que la segunda no tenía. Ya agregué a la segunda la tabla codigo que está en blanco. Ambas tablas tienen un campo donde va el dni.

En base a ello necesito hacer un update de la tabla "rensco" a la tabla "padron" de todos aquellos datos contenidos en la "rensco" tabla "codigo" en las que coincida el número de dni, es decir que descarte la actualización de aquellas en que no tienen en ambas tablas el mismo número de dni.
Cuando el update esté finalizado se abrán completado todos los registros en los que coincide el dni mientras que en los otros debieran quedaren blanco.
No se si esto se entiende, pero no encuentro mejor forma de explicarlo. Un saludo cordial.
  #2 (permalink)  
Antiguo 29/04/2016, 00:10
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Update de datos entre dos tablas

Y q haz intentado??
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 01/05/2016, 19:54
Usuario no validado
 
Fecha de Ingreso: abril-2008
Mensajes: 50
Antigüedad: 16 años
Puntos: 16
Respuesta: Update de datos entre dos tablas

Te dejo un ejemplo sacado de la manga... A ver si acierto y resuelvo tu problema.

Saludos,

PCID.

Código MySQL:
Ver original
  1. -- Creación e inserción de datos para el ejemplo
  2. create table tabla1 (id_tabla1 int auto_increment, dni varchar(10), col1 varchar(100), col2 varchar(100), primary key (id_tabla1));
  3.  
  4. create table tabla2 (id_tabla2 int auto_increment, dni varchar(10), col100 varchar(100), col3000 varchar(100), col200 varchar(100), primary key (id_tabla2));
  5.  
  6.  
  7.  
  8. insert into tabla1 (dni, col1, col2)
  9.  
  10. values  ('11111A', 'TARARA', 'AAAA'),
  11.  
  12.         ('222222A', 'TERERERE', 'EEEE'),
  13.  
  14.         ('3333333A', 'TIRIRI', 'IIII');
  15.  
  16.        
  17.  
  18. insert into tabla2 (dni, col100, col3000, col200)
  19.  
  20. values  ('999999A', 'TOROROR NUEVO VALOR', 'COLUMNA QUE NO EXISTE EN TABLA1', 'OOOOOO'),       
  21.  
  22.         ('11111A', 'TARARA NUEVO VALOR', 'COLUMNA QUE NO EXISTE EN TABLA1', 'A REPETIDA'),
  23.  
  24.         ('222222A', 'TERERE NUEVO VALOR', 'COLUMNA QUE NO EXISTE EN TABLA1', 'E REPETIDA'),
  25.  
  26.         ('3333333A', 'TIRIRI NUEVO VALOR', 'COLUMNA QUE NO EXISTE EN TABLA1', 'I REPETIDA'),
  27.  
  28.         ('888888A', 'TURURU NUEVO VALOR', 'COLUMNA QUE NO EXISTE EN TABLA1', 'UUUUUU');
  29.  
  30. /*
  31. -- Contenido de tabla1
  32. ---------+------------+---------------------+------------------------------------------------
  33. id_tabla1 dni          col1                  col2
  34.  
  35. ---------+------------+---------------------+------------------------------------------------
  36.  
  37. 1         11111A       TARARA                AAAA
  38.  
  39. 2         222222A      TERERERE              EEEE
  40.  
  41. 3         3333333A     TIRIRI                IIII          
  42.  
  43.  
  44. -- Contenido de tabla2
  45. ---------+------------+---------------------+---------------------------------+--------------
  46. id_tabla2 dni          col100                col3000                           col200            
  47.  
  48. ---------+------------+---------------------+---------------------------------+--------------
  49. 1         999999A      TOROROR NUEVO VALOR   COLUMNA QUE NO EXISTE EN TABLA1   OOOOOO
  50.  
  51. 2         11111A       TARARA NUEVO VALOR    COLUMNA QUE NO EXISTE EN TABLA1   A REPETIDA
  52.  
  53. 3         222222A      TERERE NUEVO VALOR    COLUMNA QUE NO EXISTE EN TABLA1   E REPETIDA
  54.  
  55. 4         3333333A     TIRIRI NUEVO VALOR    COLUMNA QUE NO EXISTE EN TABLA1   I REPETIDA
  56.  
  57. 5         888888A      TURURU NUEVO VALOR    COLUMNA QUE NO EXISTE EN TABLA1   UUUUUU
  58.  
  59. */
  60.  
  61. update tabla1 a inner join tabla2 b on b.dni = a.dni set a.col1 = b.col100, a.col2 = b.col200;
  62.  
  63. /*
  64. -- Contenido de tabla1 después del UPDATE
  65. ---------+------------+---------------------+------------------------------------------------
  66. id_tabla1 dni          col1                  col2
  67. ---------+------------+---------------------+------------------------------------------------
  68.  
  69. 1         11111A       TARARA NUEVO VALOR    A REPETIDA
  70.  
  71. 2         222222A      TERERE NUEVO VALOR    E REPETIDA
  72.  
  73. 3         3333333A     TIRIRI NUEVO VALOR    I REPETIDA
  74.  
  75. */

Última edición por pcid; 01/05/2016 a las 19:58 Razón: Modificación de etiqueta [CODE] por [HIGHLIGHT = "MySQL"]

Etiquetas: campo, registros, sql, tabla, tablas, update
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:14.