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

union de dos tablas

Estas en el tema de union de dos tablas en el foro de Mysql en Foros del Web. hola buenas a todos tengo un pequeño problema que no se resolver tengo una tabla (codigos) con dos campos id, codigo id codigo 10 567 ...
  #1 (permalink)  
Antiguo 03/08/2012, 11:57
 
Fecha de Ingreso: septiembre-2006
Mensajes: 116
Antigüedad: 18 años, 2 meses
Puntos: 1
union de dos tablas

hola buenas a todos tengo un pequeño problema que no se resolver
tengo una tabla (codigos) con dos campos id, codigo
id codigo
10 567
10 896

por otro lados tengo localizaciones que tiene id, top y left

id top left
10 69 455
10 79 679


quiero tener una tabla que tenga
10 69 455 567
10 79 679 896
como seria la consulta???

muchas gracias
  #2 (permalink)  
Antiguo 03/08/2012, 12:03
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: union de dos tablas

No se puede realizar la consulta que devuelva lo que quieres, en ese contexto, porque la cardinalidad que muestran los datos no te devoverá dos registros sino cuatro.
Cita:
10 69 455 567
10 69 455 896
10 79 679 567
10 79 679 896
Es decir: cada registro de la primera tabla parece relacionarse con cada uno de los de la segunda. No hay un campo que pueda mostrar una relación 1:1, y en esa forma se generará un producto cartesiano.
O te faltan datos, o te faltan tablas.
__________________
¿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 03/08/2012, 12:11
 
Fecha de Ingreso: septiembre-2006
Mensajes: 116
Antigüedad: 18 años, 2 meses
Puntos: 1
Respuesta: union de dos tablas

exacto es lo que siempre me sale .... tengo lo siguiente

codigos (id, ficha_id, codigo)
localizaciones (id, ficha_id, top, left, leyenda)
fichas(id, estado_id, tipo_id, facturacion_id, compania, nombre, diagnostico, tecnica, localizacion)

y quiero conseguir una tabla que tenga

nueva(ficha_id, tipo_id, diagnostico, localizaciones, tecnica, codigo)

consigo unificar todos en una tabla menos el codigo, que lo que hace es si tengo dos id= 10 me crea como dices tu 2 mas.


como puedo resolver eso.

muchas gracias
  #4 (permalink)  
Antiguo 03/08/2012, 12:39
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: union de dos tablas

En principio, la reación parece ser esta:
Código MySQL:
Ver original
  1.     F.ficha_id,
  2.     F.tipo_id,
  3.     F.diagnostico,
  4.     F.localizaciones,
  5.     F.tecnica,
  6.     C.codigo
  7.     fichas F INNER JOIN codigos C ON F.ficha_id = C.ficha_id
Pero no es clara la vinculación entre las tablas.
No es buena práctica usar el mismo nombre para los campos de diferentes tablas; usar "ID" como nombre de la PK de cada tabla confunde. Es mejor usar un nombre tal que cuando lo pases como FK sea siempre igual al nombre que tiene en su tabla origen (id_codigo, id_ficha, id_localizacion, etc).
Además, ayuda a ver las relaciones entre tablas, que acá resultan un poco confusas.
__________________
¿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 03/08/2012, 13:53
 
Fecha de Ingreso: septiembre-2006
Mensajes: 116
Antigüedad: 18 años, 2 meses
Puntos: 1
Respuesta: union de dos tablas

gracias por responder gnzsoloyo pero eso ya lo he probado y me duplica los id, como lo que expuse en mi pregunta

me genera esto
10 69 455 567
10 69 455 896
10 79 679 567
10 79 679 896

en vez de esto

10 69 455 567
10 79 679 896
  #6 (permalink)  
Antiguo 03/08/2012, 13:58
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: union de dos tablas

Por lo pronto eso demuestra que tienes en la aplicación el problema de que una misma ficha tiene asignados grupos de valores diferentes, si consideramos que sólo el último campo (codigo) es el que se relaciona con otra tabla.

En otras palabras tienes algo de inconsistencia, o en los procesos de carga, o en el diseño de la base de datos.
Es evidente que hay algún problema severo con los datos que existen en la base.

¿Puedes postear la estructura de las tablas o en su defecto el diagrama de las tablas donde se vean relaciones y cardinaliades.
__________________
¿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: tabla, tablas, union, campos
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:23.