Ver Mensaje Individual
  #2 (permalink)  
Antiguo 01/02/2013, 10:18
leonardo_josue
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 18 años, 3 meses
Puntos: 447
Respuesta: Reemplazar los registros de una tabla por los de otra tabla

Hola turminator:

La pregunta que te haría aquí sería en primer lugar, ¿por qué tienes que sustituir el valor del código por el del nombre de la provincia?

El modelo que tienes es correcto, es decir, tener una tabla "catálogo" donde tengas todas las provincias existentes, y una tabla de "datos" donde hagas referencia a tu tabla catálogo... esa es la esencia del modelo Entidad-Relación, el manejo de llaves foráneas, integridad de la información, etc... no entiendo por qué quieres arruinar tus datos de esta manera...

Si la razón que me vas a decir es que quiere mostrar el nombre de la provincia, no su código... bueno, pues no sería una razón válida, pues con hacer un simple JOIN quedaría solucionado. Entonces??? pero bueno, para hacer lo que quieres en realidad tienes muchas formas de hacerlo, una sería más o menos así:

Código MySQL:
Ver original
  1. mysql> SELECT * FROM tablaX;
  2. +------+-------------+
  3. | idX  | descripcion |
  4. +------+-------------+
  5. | 1    | uno         |
  6. | 2    | dos         |
  7. | 3    | tres        |
  8. +------+-------------+
  9. 3 rows in set (0.00 sec)
  10.  
  11. mysql> SELECT * FROM tablaY;
  12. +------+--------------+--------------+
  13. | idY  | descripcionY | descripcionX |
  14. +------+--------------+--------------+
  15. |    1 | one          | 1            |
  16. |    2 | two          | 2            |
  17. |    3 | tres         | 3            |
  18. +------+--------------+--------------+
  19. 3 rows in set (0.00 sec)
  20.  
  21. mysql> UPDATE tablaY, tablaX SET tablaY.descripcionX = tablaX.descripcion
  22.     -> WHERE tablaY.descripcionX = tablaX.idX;
  23. Query OK, 3 rows affected (0.03 sec)
  24. Rows matched: 3  Changed: 3  Warnings: 0
  25.  
  26. mysql> SELECT * FROM tablaY;
  27. +------+--------------+--------------+
  28. | idY  | descripcionY | descripcionX |
  29. +------+--------------+--------------+
  30. |    1 | one          | uno          |
  31. |    2 | two          | dos          |
  32. |    3 | tres         | tres         |
  33. +------+--------------+--------------+
  34. 3 rows in set (0.00 sec)

Aquí debes tener cuidado en que los tipos de datos y las longitudes de tus columnas sean iguales, pues de lo contrario es posible que tengas pérdida de información o que ni siguiera te permita hacer la actualización.

Saludos
Leo.