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

Error en consulta en MySQL

Estas en el tema de Error en consulta en MySQL en el foro de Mysql en Foros del Web. Buenas dias a toda la comunidad, Quisiera pedir la ayuda de toda la comunidad para resolver mi problema en una consulta a la base de ...
  #1 (permalink)  
Antiguo 30/09/2014, 09:22
 
Fecha de Ingreso: septiembre-2014
Mensajes: 2
Antigüedad: 9 años, 7 meses
Puntos: 0
Exclamación Error en consulta en MySQL

Buenas dias a toda la comunidad,
Quisiera pedir la ayuda de toda la comunidad para resolver mi problema en una consulta a la base de datos MySQL.

Para comenzar quiero explicar, que mi empresa cuenta con la siguiente estructura de base datos

http://www.lawebdelprogramador.com/usr/175000/175283/5429c2250a388-estructura_de_la_base_de_datos_de_pasajero_frecuen te.jpg


y la gerencia requieren un reporte como este, que indica en la parte inferior

http://www.lawebdelprogramador.com/usr/175000/175283/5429c23a05564-estructura_de_la_base_de_datos_de_pasajero_frecuen te2.jpg


he realizado la siguiente consulta:

Código MySQL:
Ver original
  1. c.id as Codigo_Cliente, c.fullName as Nombre_Cliente, c.dni as DNI,
  2. bc.bonusCardNumber as numero_tarjeta,
  3. rm.description as Destino,
  4. e.fullname as Nombre_Usuario,
  5. bct.dateCreated as fecha_venta
  6. FROM bonusCardTransaction bct, bonusCard bc, user u, routeMaster rm, customer c, employee e
  7. WHERE bc.id=bct.bonusCardId
  8. AND u.id=bct.userId
  9. AND rm.id=bct.routeMasterId
  10. AND bc.id=c.id
  11. AND u.id=e.userId;


pero cuando la ejecuto me resulta el siguiente mensaje

La selección actual no contiene una columna única. La edición de la grilla y los enlaces de copiado, eliminación y edición no están disponibles.

he intentado buscar la solución sin encontrarla y también propuse en otros foros alguna ayuda para resolverlo.

Agradecería mucho a la comunidad me indique cual es mi error.

Saludos a todos

Willy Q.

Última edición por gnzsoloyo; 30/09/2014 a las 09:58
  #2 (permalink)  
Antiguo 30/09/2014, 15:34
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 11 años, 11 meses
Puntos: 320
Respuesta: Error en consulta en MySQL

Eso no es un error. Es un limitación del phpmyadmin porque hay mas de dos filas repetidas.
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios
  #3 (permalink)  
Antiguo 01/10/2014, 08:35
 
Fecha de Ingreso: septiembre-2014
Mensajes: 2
Antigüedad: 9 años, 7 meses
Puntos: 0
Respuesta: Error en consulta en MySQL

Hola NSD,
Agradezco tus comentarios, bueno como dices que es una limitación y que tengo 2 filas repetidas, te agradecería me indiques en mi sentencia que debería de modificar, agregar o eliminar, saludos
  #4 (permalink)  
Antiguo 01/10/2014, 09:06
Avatar de 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)

Etiquetas: select, sql
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 17:29.