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

[SOLUCIONADO] falta de datos

Estas en el tema de falta de datos en el foro de Mysql en Foros del Web. Hola,espero estén bien. Me surge el siguiente problema: Tengo 2 tablas, las cuales tienen una columna que las vincula "EXP". Pero después de un tiempo ...
  #1 (permalink)  
Antiguo 15/04/2016, 13:33
 
Fecha de Ingreso: septiembre-2014
Mensajes: 79
Antigüedad: 9 años, 7 meses
Puntos: 0
falta de datos

Hola,espero estén bien.
Me surge el siguiente problema:
Tengo 2 tablas, las cuales tienen una columna que las vincula "EXP".
Pero después de un tiempo noté que en una de las dos tablas no me guardaba todos los "EXP"(por un error en la programación).
Entonces, ¿Como hago para generar esta consulta?=>
Si EXP existe en TABLA1 y no existe en TABLA2
INSERT en TABLA2 EL VALOR DE EXP
Para cada uno de los EXP...
¿Es posible?
Muchas gracias!!!!
__________________
Un perro no es perro por ladrar, sino por ser perro...
  #2 (permalink)  
Antiguo 15/04/2016, 13:51
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: falta de datos

Es perfectamente posible... siempre y cuando estés seguro de cómo y de donde tomar los restantes datos que tienen que poblar las restantes columnas de la tabla 2...

El tema es que sin detalles concretos, no hay forma de saber qué es exactamente lo que hay que hacer.

¿Podrías ser mas detallado?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 18/04/2016, 06:31
 
Fecha de Ingreso: septiembre-2014
Mensajes: 79
Antigüedad: 9 años, 7 meses
Puntos: 0
Respuesta: falta de datos

Hola, gracias por responder. A ver si puedo aclararme en la explicación
tabla1

Código MySQL:
Ver original
  1. id =>1    exp=>3457
  2. id =>2    exp=>2441
  3. id =>3    exp=>3911
  4. id =>4    exp=>9454
  5. id =>5    exp=>6450
  6. tabla2
  7. id =>1    exp=>3457
  8. id =>2    exp=>2441
  9. id =>3    exp=>9454
  10. id =>4    exp=>6450

Cuando se guardaron los datos el EXP =>3911 no se guardó en la tabla2. Por lo tanto lo que quisiera hacer es = Si EXP existe en tabla1 también debería existir en tabla2, si no existe... entonces insertar EXP en tabla2.

Sería algo así?
Código MySQL:
Ver original
  1. SELECT tabla1.EXP FROM tabla1 WHERE EXP NOT IN(SELECT tabla2.EXP FROM tabla2)

Y despues agregarle en elgun lado el insert?
Ahí está mas claro?
Muchas gracias
__________________
Un perro no es perro por ladrar, sino por ser perro...
  #4 (permalink)  
Antiguo 18/04/2016, 06:40
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: falta de datos

Se recomienda no postear ejemplos simulados. Muchas veces las soluciones propuestas no resultan porque las simulaciones no cumplen con la realidad.
Digo esto porque dudo que tu tabla se llame "Tabla1"...

Como sea, en ese conjunto de datos pareciera que el campo "EXE es un campo de valor único en cada tabla, es decir que no hay dos registros que repitan el mismo valor.
¿Es así?

Si así lo fuese, la solucion sería bastante simple. Sino... la cosa se complica.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 18/04/2016, 10:12
 
Fecha de Ingreso: septiembre-2014
Mensajes: 79
Antigüedad: 9 años, 7 meses
Puntos: 0
Respuesta: falta de datos

Claaaaaaa, es único el campo EXP. Y utilizo el nombre tabla1 porque en realidad tengo el problema con varias tablas. Comerciales, personales, adjunta... y para simplificar uso el tabla1 y tabla2.
Ya pude reconocer cuales son los EXP que me faltan en las tablas consultando como mas arriba indique, ahora solo me faltaría sumar el insert para los EXP no encontrados.
Te agradezco por los comentarios, es bueno que alguien se interese por las inquietudes de otros.
__________________
Un perro no es perro por ladrar, sino por ser perro...
  #6 (permalink)  
Antiguo 18/04/2016, 10:53
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: falta de datos

SI el campo "EXP" tiene valores únicos, lo más simple es crear un índice UNIQUE sobre ese campo y luego usar un INSERT IGNORE... para insertar los registros.
Código MySQL:
Ver original
  1. SELECT campos....
  2. FROM xxxxxxxxxxx
  3. WHERE ...
La sintaxis y codiciones, así como el proceso de migracion de datos variará con las tablas necesarias para crear las inserciones. También puede requerirse uno o más pasos para lograrlo, así como tablas temporales y validaciones.

Con lo poco que explicas del modelo de datos que tienes y sus restricciones, no hay modo de ayudarte.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: falta, tabla
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 03:45.