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

Consulta cruzada con INNER JOIN resultados repetidos

Estas en el tema de Consulta cruzada con INNER JOIN resultados repetidos en el foro de Mysql en Foros del Web. Hola Amigos, tengo un problema con mi consulta con JOINS, resulta que me arroja los resultados, pero, en algunos casos los registros me los arroja ...
  #1 (permalink)  
Antiguo 05/06/2013, 11:43
 
Fecha de Ingreso: febrero-2011
Mensajes: 195
Antigüedad: 13 años, 2 meses
Puntos: 1
Consulta cruzada con INNER JOIN resultados repetidos

Hola Amigos, tengo un problema con mi consulta con JOINS, resulta que me arroja los resultados, pero, en algunos casos los registros me los arroja repetidos, que podra ser??? esta es mi consulta

Código MySQL:
Ver original
  1. SELECT * FROM tabla1
  2. INNER JOIN tabla2 ON tabla2.id_nota=tabla1.id
  3. INNER JOIN tabla3 ON tabla3.id_nota=tabla1.id
  4.  
  5. WHERE tabla3.categoria!='seccion'
  6. AND tabla2.cate_bole='subseccion'
  7. AND tabla1.medio='hola'
  8. AND (tabla2.fecha = '2013-06-05') ORDER BY tabla2.orden ASC

primero unos las tablas y le digo a la consulta que muestre los resultados donde:

en la columna "categoria" de la tabla3 tenga seccion y que
en la columna "cate_bole" de la tabla2 tenga subseccion y que
en la columna "medio" de la tabla1 tenga hola y que
en la columna "fecha" de la tabla2 tenga la fecha 2013-06-05 y por ultimo
que los ordene ascendentemente por la columna orden de la tabla2

los resultados estan bien pero repetidos, alguna sugerencia????

Última edición por gnzsoloyo; 05/06/2013 a las 12:08
  #2 (permalink)  
Antiguo 05/06/2013, 11:59
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: Consulta cruzada con INNER JOIN resultados repetidos

Hola andoencombi

¿En primer lugar, a qué te refieres con resultados "repetidos"? en BD dos registros están duplicados CUANDO TODOS SUS CAMPOS SON EXACTAMENTE IGUALES, si uno solo de los campos tiene un valor distinto, entonces no se considera un registro duplicado...

Si todos los campos son exactamente iguales, eso quiere decir que en efectivamente, tienes información duplicada en tus tablas, lo cual es un error grave. En este caso podrías utilizar la Cláusula DISTINCT y con eso solucionar el problema.

sin embargo, si observas que alguna(s) columnas tienen valores distintos, PERO LA INFORMACIÓN DEL RESTO DE LAS COLUMNAS ES EXACTAMENTE IGUAL, podría tratarse de un problema de PRODUCTO CARTESIANDO, es decir, que las tablas que estás tratando de unir estén relacionadas por más de un campo y no estés poniendo esa relación en la cláusula ON...

Es conveniente que pongas algunos datos de ejemplo para ver donde está el error... postea la estructura de tus tablas y dinos exactamente cómo es que están relacionadas las tablas.

Finalmente una sugerencia, EVITA LOS SELECT *, esto es una pésima práctica de programación... lista siempre los campos que necesitas NO IMPORTA QUE SEAN TODOS, es mejor que poner asterisco.

Saludos
Leo.
  #3 (permalink)  
Antiguo 05/06/2013, 12:40
 
Fecha de Ingreso: febrero-2011
Mensajes: 195
Antigüedad: 13 años, 2 meses
Puntos: 1
Respuesta: Consulta cruzada con INNER JOIN resultados repetidos

La estructura de las tablas es esta:

Tabla1
id
medio
texto
resumen

Tabla2
id
id_nota
cate_bole
fecha
orden

Tabla3
id
id_relacion
categoria


El id de la tabla1 se relaciona con el id_relacion de las otras dos tablas, de algun modo el id_relacion de la Tabla2 y Tabla3 son el mismo pero no se si tambien se deba poner con el ON
  #4 (permalink)  
Antiguo 05/06/2013, 13:06
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: Consulta cruzada con INNER JOIN resultados repetidos

Hola de nuevo:

Cita:
El id de la tabla1 se relaciona con el id_relacion de las otras dos tablas
Según lo que pones en tu post, el campo id_relacion SOLO EXISTE EN TU TABLA3, en tu tabla2 existe un id_nota, no sé si a ese campo te refieras... cuidado con lo que posteas.

Como te dije en el primer post, postea algunos datos de ejemplo para poder darnos una idea de dónde está el problema... dos o tres registros de cada una de tus tablas, no importa que sean datos inventados... A partir de los datos que pongas de ejemplo dinos qué es lo que estás obteniendo como resultado con la consulta que tienes y qué es lo que en realidad esperas obtener... así será más fácil dar con el error.

Saludos
Leo.

Etiquetas: join, registros, repetidos, resultados, select, 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 02:27.