Ver Mensaje Individual
  #2 (permalink)  
Antiguo 31/03/2011, 12:01
leonardo_josue
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 4 meses
Puntos: 447
Respuesta: como pasar una columna de tabla1, a tabla2

Buenas tardes omar_gutierrez:

en tu post no lo mencionas, pero me imagino que existe algún campo llave que relaciona tus dos tablas, si no es así, pues había que indicar qué criterio vas a aplicar para relacionar uno a uno tus registros. Para el ejemplo que voy a poner agregué una columna ID a las tablas que tiene las funciones de llave.

Código MySQL:
Ver original
  1. mysql> create table tabla1 (id int, nombre varchar(50));
  2. Query OK, 0 rows affected (0.08 sec)
  3.  
  4. mysql> insert into tabla1 values (1, 'www'),(2, 'sss'),(3, 'xxx');
  5. Query OK, 3 rows affected (0.03 sec)
  6. Records: 3  Duplicates: 0  Warnings: 0
  7.  
  8. mysql> select * from tabla1;
  9. +------+--------+
  10. | id   | nombre |
  11. +------+--------+
  12. |    1 | www    |
  13. |    2 | sss    |
  14. |    3 | xxx    |
  15. +------+--------+
  16. 3 rows in set (0.00 sec)
  17.  
  18. mysql> create table tabla2 (id int, apellido varchar(50), edad int);
  19. Query OK, 0 rows affected (0.09 sec)
  20.  
  21. mysql> insert into tabla2 values(1, 'wewq', 15),(2, 'qwe', 30),(3, 'fdds', 21);
  22. Query OK, 3 rows affected (0.03 sec)
  23. Records: 3  Duplicates: 0  Warnings: 0
  24.  
  25. mysql> select * from tabla2;
  26. +------+----------+------+
  27. | id   | apellido | edad |
  28. +------+----------+------+
  29. |    1 | wewq     |   15 |
  30. |    2 | qwe      |   30 |
  31. |    3 | fdds     |   21 |
  32. +------+----------+------+
  33. 3 rows in set (0.00 sec)
  34.  
  35. mysql> alter table tabla2 add (nombre varchar(50));
  36. Query OK, 3 rows affected (0.14 sec)
  37. Records: 3  Duplicates: 0  Warnings: 0
  38.  
  39. mysql> select * from tabla2;
  40. +------+----------+------+--------+
  41. | id   | apellido | edad | nombre |
  42. +------+----------+------+--------+
  43. |    1 | wewq     |   15 | NULL   |
  44. |    2 | qwe      |   30 | NULL   |
  45. |    3 | fdds     |   21 | NULL   |
  46. +------+----------+------+--------+
  47. 3 rows in set (0.00 sec)
  48.  
  49. mysql> update tabla1 T1 inner join tabla2 t2 set T2.nombre = T1.nombre
  50.     -> where T1.id = T2.id;
  51. Query OK, 3 rows affected (0.01 sec)
  52. Rows matched: 3  Changed: 3  Warnings: 0
  53.  
  54. mysql> select id, nombre, apellido, edad from tabla2;
  55. +------+--------+----------+------+
  56. | id   | nombre | apellido | edad |
  57. +------+--------+----------+------+
  58. |    1 | www    | wewq     |   15 |
  59. |    2 | sss    | qwe      |   30 |
  60. |    3 | xxx    | fdds     |   21 |
  61. +------+--------+----------+------+
  62. 3 rows in set (0.00 sec)

Esta es sólo una manera de hacer lo que quieres, también podrías crear una tabla temporal, eliminar la tabla2 y finalmente renombrar la tabla temporal, pero si tienes constraints puedes tener problemas.

Dale un vistazo a ver si te sirve el código.

Saludos
Leo.