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

No mostrar datos repetidos en consulta JOIN

Estas en el tema de No mostrar datos repetidos en consulta JOIN en el foro de Mysql en Foros del Web. Saludos a todos, tengo el siguiente interrogante: cómo puedo evitar que el resultado de una consulta de 3 tablas me arroje datos repetidos. Aquí pongo ...
  #1 (permalink)  
Antiguo 11/11/2015, 08:47
Avatar de heberthm  
Fecha de Ingreso: noviembre-2013
Ubicación: Cali
Mensajes: 65
Antigüedad: 11 años
Puntos: 1
Pregunta No mostrar datos repetidos en consulta JOIN

Saludos a todos, tengo el siguiente interrogante: cómo puedo evitar que el resultado de una consulta de 3 tablas me arroje datos repetidos. Aquí pongo en código:

Código SQL:
Ver original
  1. SELECT DISTINCT (A.No_pago), A.cedula, P.No_prestamo,  A.fecha,  P.No_cuotas, P.valor_prestamo, P.saldo, P.cuotas_pagadas,  
  2.    P.valor_cuotas, P.saldo,  
  3.    P.abono, P.multa,  P.cedula,  DATEDIFF (CURDATE(), P.fecha ) AS cuota_por_pagar, P.cuotas_pagadas,
  4.    C.nombre, C.apellido1, C.apellido2, DATE_ADD( P.fecha, INTERVAL 30 DAY) AS dias_por_pagar
  5. FROM prestamos P
  6. LEFT OUTER JOIN pagos A ON A.cedula = P.cedula
  7. RIGHT OUTER JOIN clientes C ON C.cedula = P.cedula WHERE P.saldo > 0 AND A.No_pago IS NOT NULL GROUP BY A.No_pago  ASC LIMIT $inicial,$cantidad
;

La anterior consulta me arroja en un GRID me repite los datos de cada cliente(valor_prestamo, valor_pagado.abono, multa).
__________________
Hebeth Mazuera

Última edición por gnzsoloyo; 11/11/2015 a las 09:10
  #2 (permalink)  
Antiguo 11/11/2015, 09:17
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: No mostrar datos repetidos en consulta JOIN

Vamos a hacer (otra vez) una aclaración para que se comprenda el tema:

1) En BBDD, sólo se considera repetición de datos si TODOS y cada uno de los datos de todas las columnas de un resultado se repiten entre dos o más registros cualesquiera.

2) SI al menos UN dato es diferente en la misma columna entre dos o mas registros, aunque los demás se repitan eso no se considera reptición a nive de datos.

3) La repetición de datos en una o mas columnas entre dos o más registros, es el comportamiento normal y esperado de un JOIN.

4) SI el problema es la VISUALIZACIÓN EN PANTALLA de esas repeticiones, que no se desean, ESO SE RESUELVE EN LA PROGRAMACIÓN, y NO en la base de datos.

¿Se entiende la idea?

Ahora bien, en tu consulta, el DISTINCT no se aplica sobre un campo, sino sobre el registro como unidad, que es precisamente lo que te explico en el punto (1), por consecuencia, el resutlado que ves es correcto, y lo que debes hacer es programar de modo que no se visualicen esos datos hasta que se produzca un cambio entre dos registros.

Este mismo tema ya lo he tratado (al menos yo) varias veces en el foro de PHP, y he aportado la solución posible que puede serte útil.
Usa el buscador del foro y verifica.
__________________
¿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 11/11/2015, 10:39
Avatar de heberthm  
Fecha de Ingreso: noviembre-2013
Ubicación: Cali
Mensajes: 65
Antigüedad: 11 años
Puntos: 1
Respuesta: No mostrar datos repetidos en consulta JOIN

gnzsoloyo, gracias siempre haz sido oportuno en tus comentarios, buscaré en en el tema de php como lo sugieres.
__________________
Hebeth Mazuera

Etiquetas: fecha, group, join, repetidos, 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 16:36.