Ver Mensaje Individual
  #6 (permalink)  
Antiguo 31/01/2013, 16:51
Avatar de gnzsoloyo
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, 5 meses
Puntos: 2658
Respuesta: Resultados duplicados con distinct ...

Allí no hay duplicaciones porque la última columna "licencias", tiene dos valores diferentes: "Publicada" y "Licitada". Por esa razón se repiten.
Pero el problema, si miras con cuidado tu propio gráfico en el primer post, es que estás poniendo una única condición para vincular al pago con el usurio, y en realidad debe tener dos condiciones.
En principio, yo probaría:
Código MySQL:
Ver original
  1.     pagos.*,
  2.     u.nombre,
  3.     u.apellidos,
  4.     i.ivaTexto,
  5.     tl.nombre licencia
  6.     usuarios u  
  7.     INNER JOIN licencias l  on u.idusuario = l.idusuario
  8.     INNER JOIN pagos p      on u.idusuario = p.idusuario AND l.idLicencia = p.idLicencia
  9.     INNER JOIN ivas i       on p.idiva = i.idiva
  10.     INNER JOIN tipoLicencia tl ON l.idtipoLicencia = tl.idtipoLicencia
Aún no estoy seguro de que el resultado sea correcto, pero si no vinculas la licencia y el usuario con el pago al mismo tiempo, te hará un producto cartesiano de los usuarios con todos sus pagos, con todas sus licencias.
Las relaciones de FK no tienen solamente que ver con las restricciones de integridad referencia, sino también que deben respetarse para reconstruir la información que se ha dispersado en diferentes tablas, de modo de restaurar la operación original.

Otro detalle: El orden de los factores, en SQL, altera el producto, por lo que no debes poner las tablas en orden abitrario. Ve poniéndolas en orden jerárquico, te ayudará a reducir el tiempo de ejecución.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)