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

[SOLUCIONADO] mejorar consulta

Estas en el tema de mejorar consulta en el foro de Bases de Datos General en Foros del Web. hola tengo un problema en mi consulta resulta que cuando consulta a una persona que a solicitado 1 producto todo bien en la consulta y ...
  #1 (permalink)  
Antiguo 18/04/2016, 01:31
Avatar de aviweb2015  
Fecha de Ingreso: abril-2016
Ubicación: venezuela
Mensajes: 215
Antigüedad: 8 años, 1 mes
Puntos: 1
Busqueda mejorar consulta

hola tengo un problema en mi consulta resulta que cuando consulta a una persona que a solicitado 1 producto todo bien en la consulta y se me imprime de la siguiente manera:


Nombre del Contratante: 99999999 jose carriles
Motivo del Evento Boda
Lugar del Evento: caritio
Día y Hora del Evento 2016-04-30 10:00
Equipos Solicitados 1 Toldo 5000
Reservación de Fecha 2016-04-30
Total a Cancelar 5000 bs
Contrato que se expide a los 18/04/2016


pero cuando consulta a una persona que a solicitado varios productos se me imprime de esta manera:


Nombre del Contratante: 66555478 maria martinez
Motivo del Evento Privado
Lugar del Evento: sabanita
Día y Hora del Evento 2016-04-16 10:00
Equipos Solicitados 1 Mesa 900 bs
Reservación de Fecha 2016-04-16
Total a Cancelar 1400
Contrato que se expide a los 18/04/2016
Nombre del Contratante: 66555478 maria martinez
Motivo del Evento Privado
Lugar del Evento: sabanita
Día y Hora del Evento 2016-04-16 10:00
Equipos Solicitados 1 Manteles 150 bs
Reservación de Fecha 2016-04-16
Total a Cancelar 1400
Contrato que se expide a los 18/04/2016
Nombre del Contratante: 66555478 maria martinez
Motivo del Evento Privado
Lugar del Evento: sabanita
Día y Hora del Evento 2016-04-16 10:00
Equipos Solicitados 1 Sillas Tifanny 350 bs
Reservación de Fecha 2016-04-16
Total a Cancelar 1400
Contrato que se expide a los 18/04/2016

en vez de mostrarse la consulta de esta manera:

Nombre del Contratante: 66555478 maria martinez
Motivo del Evento Privado
Lugar del Evento: sabanita
Día y Hora del Evento 2016-04-16 10:00
Equipos Solicitados
1 Mesa 900 bs
1 Manteles 150 bs
1 Sillas Tifanny 350 bs
Reservación de Fecha 2016-04-16
Total a Cancelar 1400
Contrato que se expide a los 18/04/2016


aqui anexi la consulta:


Código SQL:
Ver original
  1. SELECT  
  2. detalle_compras.idcedula,
  3. detalle_compras.numeroventa,
  4. detalle_compras.fecha,
  5. detalle_compras.personas,
  6. detalle_compras.idevento,
  7. detalle_compras.lugar_evento,
  8. detalle_compras.dia,
  9. detalle_compras.hora_evento,
  10. detalle_compras.total,
  11. usuario.nombre,
  12. usuario.apellido,
  13. compras.cantidad,
  14. compras.descripcion,
  15. compras.subtotal
  16. FROM detalle_compras INNER JOIN usuario ON
  17. detalle_compras.idcedula=usuario.cedula
  18. INNER JOIN compras ON compras.numeroventa=detalle_compras.numeroventa
  19. WHERE idcedula='$idcedula'
__________________
yoclens avilan

Última edición por gnzsoloyo; 18/04/2016 a las 06:11
  #2 (permalink)  
Antiguo 18/04/2016, 06:13
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: mejorar consulta

Estimado:
Tu consulta funciona de un modo total y absolutamente correcto. El resultado que obtienes es el resultado normal y esperado para un JOIN.
Lo que tu quieres mostrar es lo que se hace programáticamente en la aplicación, cuando vas desplegando cad registro devuelto de un modo diferente. No es tema de la base resolver eso.

Una consulta con JOIN devuelve una tabla resultado, donde se se repiten los datos de las columnas que corresponden a la cardinalidad N de la relaci'on de ese JOIN. Asi es y así debe ser.
Lo que haces en la aplicación es sólo mostrar esa información una vez, en el primer registro, y desplegar luego la información que es diferente en cada uno de los siguientes (los productos ne este caso).
El cómo lo haces, dependerá del lenguaje usado y sus métodos.
__________________
¿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: fecha, mejorar, select
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 04:04.