Ver Mensaje Individual
  #4 (permalink)  
Antiguo 01/10/2014, 09:06
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: Error en consulta en MySQL

Por lo pronto, te aconsejo no usar JOIN implícito (la coma), sino explicitos, ya que eso es más optimizado, y permite ver mejor las relaciones.
Código MySQL:
Ver original
  1.     c.id Codigo_Cliente,
  2.     c.fullName Nombre_Cliente,
  3.     c.dni DNI,
  4.     bc.bonusCardNumber numero_tarjeta,
  5.     rm.description Destino,
  6.     e.fullname Nombre_Usuario,
  7.     bct.dateCreated fecha_venta
  8.     bonusCardTransaction bct
  9.     INNER JOIN bonusCard bc ON bct.bonusCardId = bc.id
  10.     INNER JOIN user u ON bct.userId = u.id
  11.     INNER JOIN routeMaster rm ON bct.routeMasterId  = rm.id
  12.     INNER JOIN customer c ON bc.id=c.id
  13.     INNER JOIN employee e ON u.id=e.userId
  14. ;
Fuera d eso, lo que hay que ver es por qué se genera una duplicacion de registros, es decir, hay dos registros devueltos que son exactamente iguales en los datos que estás invocando.
Eso implica que al menos una de las tablas tiene una relación 1:N con otra, y te está faltando una condicion para la consulta.
Verifica cual es la conducion faltante.

Ahora bien,m si quieres a fuerza bruta, simplemente haz:
Código MySQL:
Ver original
  1.     c.id Codigo_Cliente,
  2.     c.fullName Nombre_Cliente,
  3.     c.dni DNI,
  4.     bc.bonusCardNumber numero_tarjeta,
  5.     rm.description Destino,
  6.     e.fullname Nombre_Usuario,
  7.     bct.dateCreated fecha_venta
  8.     bonusCardTransaction bct
  9.     INNER JOIN bonusCard bc ON bct.bonusCardId = bc.id
  10.     INNER JOIN user u ON bct.userId = u.id
  11.     INNER JOIN routeMaster rm ON bct.routeMasterId  = rm.id
  12.     INNER JOIN customer c ON bc.id=c.id
  13.     INNER JOIN employee e ON u.id=e.userId
  14. ;
y no se repetiran ninguno de los registros mostrados, lo que implica que en la base no puedan existir inconsistencias.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)