MySQL - Como mejoro esta consulta?

   
Vista:

Como mejoro esta consulta?

Publicado por Ivan Calderon (2 intervenciones) el 11/01/2016 22:27:38
Saludos amigos foristas muchas gracias por querer ayudarme

tengo cuatro tablas que son

PUBLICACIONES con los campos
id
titulo
usuarios_id

USUARIOS con los campos
id
nombre
estados_id

ESTADOS con los campo
id
nombre

PUBLICACIONESXSTATUS con los campos
publicaciones_id
status_publicaciones_id
fecha_fin


y la siguiente consulta

SELECT estados.*,(select count(*) from publicaciones where titulo like '%a%' and usuarios_id in (select id from usuarios where estados_id=estados.id) and id in (select publicaciones_id from publicacionesxstatus where status_publicaciones_id=1 and fecha_fin is null)) as totaP FROM estados,publicaciones group by estados.id


la idea es obtener los estados y la cantidad de publicaciones activas que tiene cada estado, algo asi

1 Amazonas 10
2 Apure 5

Funciona bien pero tarda demasiado, agradeceria su ayuda para mejoras ese query y que genere el resultado sin tardar tanto.

De antemano mil gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Como mejoro esta consulta?

Publicado por Juan R. (19 intervenciones) el 12/01/2016 17:02:43
Buenas Ivan

Creo que podrías mejorarlo cambiando el producto cartersiano "FROM estadios, publicaciones" por un "FROM estadios INNER JOIN publicaciones ON " y a lo mejor te haría la vida un poco mejor que usarás alias, es decir que por ejemplo la tabla estadios fuera "e" y la publicaciones "p"

Un saludo y a ver si así te va algo más rápido
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Como mejoro esta consulta?

Publicado por Ivan Calderon (2 intervenciones) el 12/01/2016 17:07:33
Muchas Gracias Juan voy a probarlo en la tarde y te cuento como me fue
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar