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

como optimizar este query

Estas en el tema de como optimizar este query en el foro de Mysql en Foros del Web. SELECT a.cedula, b.nombre, ( SELECT villa_reservada FROM reservas WHERE cedula = a.cedula ) AS modelo, ( SELECT etapa FROM reservas WHERE cedula = a.cedula ) ...
  #1 (permalink)  
Antiguo 08/06/2011, 09:08
 
Fecha de Ingreso: septiembre-2009
Mensajes: 135
Antigüedad: 14 años, 7 meses
Puntos: 0
Pregunta como optimizar este query

SELECT a.cedula, b.nombre, (

SELECT villa_reservada
FROM reservas
WHERE cedula = a.cedula
) AS modelo, (

SELECT etapa
FROM reservas
WHERE cedula = a.cedula
) AS etapa, (

SELECT manzana
FROM reservas
WHERE cedula = a.cedula
) AS manzana, (

SELECT solar
FROM reservas
WHERE cedula = a.cedula
) AS solar, a.valor_pago, a.forma_pago, a.referencia, a.status
FROM `tb_pagos` a, reporte8 b
WHERE a.cedula = b.cedula
AND forma_pago <> 'LEGAL'
ORDER BY a.cedula

Como puedo optimizar esto, muchas gracias!!!
  #2 (permalink)  
Antiguo 08/06/2011, 09:18
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, 4 meses
Puntos: 2658
Respuesta: como optimizar este query

Aparentemente de esta forma debería andar bien:
Código MySQL:
Ver original
  1.   a.cedula,
  2.   b.nombre,
  3.   r.villa_reservada
  4.   r.modelo, etapa,
  5.   r.manzana, solar,
  6.   a.valor_pago,
  7.   a.forma_pago,
  8.   a.referencia,
  9.   a.`status`
  10.   `tb_pagos` a
  11.   INNER JOIN reservas r ON a.cedula = r.cedula
  12.   INNER JOIN reporte8 b ON  a.cedula = b.cedula
  13. WHERE forma_pago <> 'LEGAL'
  14. ORDER BY a.cedula
__________________
¿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 08/06/2011, 09:32
 
Fecha de Ingreso: septiembre-2009
Mensajes: 135
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: como optimizar este query

Muchas Gracias maestro!!!!
  #4 (permalink)  
Antiguo 08/06/2011, 10:00
 
Fecha de Ingreso: septiembre-2009
Mensajes: 135
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: como optimizar este query

una pregunta mas? como puedo sacar subtotales por cada indiduo distinto, por ejemplo aca salen 3 cedulas que han hecho pagos, ok eso si quiero pero cuando pasa a uno diferente quiero un subtotal de esos pagos, me explique?
  #5 (permalink)  
Antiguo 08/06/2011, 10:08
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, 4 meses
Puntos: 2658
Respuesta: como optimizar este query

Código MySQL:
Ver original
  1.   a.cedula,
  2.   b.nombre,
  3.   r.villa_reservada
  4.   r.modelo, etapa,
  5.   r.manzana, solar,
  6.   a.valor_pago,
  7.   a.forma_pago,
  8.   SUM(a.valor_pago) TotalPagos,
  9.   a.referencia,
  10.   a.`status`
  11.   `tb_pagos` a
  12.   INNER JOIN reservas r ON a.cedula = r.cedula
  13.   INNER JOIN reporte8 b ON  a.cedula = b.cedula
  14. WHERE forma_pago <> 'LEGAL'
  15. GROUP BY a.cedula
  16. ORDER BY a.cedula;
Esta sintaxis es sólo aplicable a MySQL, porque es el único DBMS que permite hacer agrupamientos por sólo parte de los campos no afectados por funciones agrupadas. El resto de los DBMS requiere que se listen en el GROUP BY todo slos campos no afectados con funciones.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #6 (permalink)  
Antiguo 08/06/2011, 10:54
 
Fecha de Ingreso: septiembre-2009
Mensajes: 135
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: como optimizar este query

nop eso ya hice y no sale correctamente.
  #7 (permalink)  
Antiguo 08/06/2011, 10:56
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, 4 meses
Puntos: 2658
Respuesta: como optimizar este query

Cita:
nop eso ya hice y no sale correctamente.
Información insuficiente.

¿Exactamete qué es lo que no sale como debería y cómo es que se supone que debe salir?
__________________
¿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: sql-optimizar, sql-sentencia
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 23:47.