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

LLevar datos de una tabla a otra con condición

Estas en el tema de LLevar datos de una tabla a otra con condición en el foro de Mysql en Foros del Web. Hola, como estas,antes que nada gracias por las rpts. que puedan darme, lo que necesito es los siguiente: Tengo una tabla Paciente y otra historiaclinica: ...
  #1 (permalink)  
Antiguo 30/06/2009, 12:58
 
Fecha de Ingreso: abril-2009
Ubicación: Lima
Mensajes: 108
Antigüedad: 15 años
Puntos: 0
LLevar datos de una tabla a otra con condición

Hola, como estas,antes que nada gracias por las rpts. que puedan darme, lo que necesito es los siguiente:
Tengo una tabla Paciente y otra historiaclinica:
Paciente:
idPaciente nombre ap am ....
historiaclinica:
hist idPaciente fecha_creacion

He decidido eliminar la tabla historiaclinica porque no me sirve, pero yo tengo almacenado data en ésta tabla.

Lo que busco es llevar los datos de ésta tabla(historiaclinica), especificamente "hist" y "fecha_creacion" a la tabla Paciente, como pueden ver en ambas tablas tengo el idPaciente asi que el insert sería con la condición que los idPaciente sean iguales.

En mi tabla paciente ya cree los dos campos que quiero, es decir hist y fecha_creacion, pero ahora: ¿Cómo hago ésta insercción? ¿Se puede hacer esto?
  #2 (permalink)  
Antiguo 30/06/2009, 13:36
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: LLevar datos de una tabla a otra con condición

Un ejemplo vale mas que mil palabras.

Código mysql:
Ver original
  1. mysql> select *from paciente;
  2. +-------------+-------------+------+-------+
  3. | id_paciente | nombre      | hist | fecha |
  4. +-------------+-------------+------+-------+
  5. |           1 | daniel      | NULL | NULL  |
  6. |           2 | santiago    | NULL | NULL  |
  7. |           3 | juan manuel | NULL | NULL  |
  8. |           4 | dondi       | NULL | NULL  |
  9. +-------------+-------------+------+-------+
  10. 4 rows in set (0.01 sec)
  11.  
  12. mysql> select *from hist_clinica;
  13. +------+-------------+------------+
  14. | hist | id_paciente | fecha      |
  15. +------+-------------+------------+
  16. |    1 |           1 | 2009-06-30 |
  17. |    2 |           3 | 2009-06-30 |
  18. |    3 |           4 | 2009-06-30 |
  19. |    4 |           2 | 2009-06-30 |
  20. +------+-------------+------------+
  21. 4 rows in set (0.00 sec)
  22.  
  23. mysql> update paciente p inner join hist_clinica hc
  24. ->using(id_paciente) set p.hist=hc.hist, p.fecha=hc.fecha;
  25. Query OK, 4 rows affected (0.00 sec)
  26. Rows matched: 4  Changed: 4  Warnings: 0
  27.  
  28. mysql> select *from paciente;
  29. +-------------+-------------+------+------------+
  30. | id_paciente | nombre      | hist | fecha      |
  31. +-------------+-------------+------+------------+
  32. |           1 | daniel      |    1 | 2009-06-30 |
  33. |           2 | santiago    |    4 | 2009-06-30 |
  34. |           3 | juan manuel |    2 | 2009-06-30 |
  35. |           4 | dondi       |    3 | 2009-06-30 |
  36. +-------------+-------------+------+------------+
  37. 4 rows in set (0.00 sec)
  38.  
  39. mysql> drop table hist_clinica;
  40. Query OK, 0 rows affected (0.00 sec)

Cuentanos como te va.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming

Última edición por huesos52; 30/06/2009 a las 14:07
  #3 (permalink)  
Antiguo 30/06/2009, 14:29
 
Fecha de Ingreso: abril-2009
Ubicación: Lima
Mensajes: 108
Antigüedad: 15 años
Puntos: 0
Respuesta: LLevar datos de una tabla a otra con condición

Muchisimas gracias huesos52, sale perfecto, gracias
  #4 (permalink)  
Antiguo 30/06/2009, 14:33
Avatar de deadlykyo  
Fecha de Ingreso: noviembre-2005
Ubicación: Cbba - Bolivia
Mensajes: 747
Antigüedad: 18 años, 5 meses
Puntos: 5
Respuesta: LLevar datos de una tabla a otra con condición

Lo que buscas hacer es justamente lo que huesos52 dice en su post, pero antes de realizar esto tienes tomar en cuenta que si se crearon ambas tablas tal vez fue con la idea de soportar cambios en un futuro, ya que siempre una aplicacion cambia y la base de datos son los cimientos para cualquier cambio que se realize, deberias analizar la posibilidad de que mas adelante un paciente pueda tener diferentes historias clinicas una para medicina general, otra para odontologia y tal vez otras categorias mas, pero si esa situacion no se va a dar ni en un futuro, entonces es innecesaria y se puede eliminar esa tabla,

Atentamente,
deadlykyo.
__________________
"El Conocimiento es de todos, no solo de algunos"
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 08:57.