Ver Mensaje Individual
  #5 (permalink)  
Antiguo 24/06/2009, 10:15
djmourino
 
Fecha de Ingreso: noviembre-2006
Mensajes: 27
Antigüedad: 17 años, 6 meses
Puntos: 1
Respuesta: Optimizar consulta sql con subconsultas

ok pongo entonces el sql.
Código sql:
Ver original
  1. SELECT id FROM  usuarios  WHERE estado='1' ORDER BY id
Con esa consulta sacaría el id del usuario.
Código sql:
Ver original
  1. SELECT a.*,b.* FROM  mensajes AS a, click AS b
  2. WHERE a.id_usuario=id AND b.id_mensaje=a.id
  3. GROUP BY b.id_mensaje
Con esta ultima quiero sacar el numero de mensajes que tiene x usuario dependiendo de si hizo algún click en los enlaces que tiene el mensaje y los clicks que hace se guarda en la tabla click se relaciona entre las dos mediante el id del mensaje.

Ejemplo:
En la tabla usuarios hay el usuario con el id 15 , bien sabiendo su id se consulta la tabla mensajes enlazándolas por el campo id_usuario, a la vez que cuento los mensajes que le e enviado limito este recuento verificando que en la tabla click existe el id del mensaje (si existe es que se hizo click si no existe no se cuenta el mensaje).

Seria fusionar esas dos consultas en 1 salo para "optimizar" la consulta y que el numero de consultas sea menor y si puede ser que sea mas rápido el calculo.

Lo que intento conseguir es algo así (el código que pongo ahora no funciona se me cuelga el apache).
Código sql:
Ver original
  1. SELECT id,(SELECT COUNT(*) FROM  mensajes AS a, click AS b WHERE a.id_usuario=id AND b.id_mensaje=a.id GROUP BY b.id_mensaje) AS numero_mensajes_click  FROM usuarios  WHERE estado='1' ORDER BY id

Un saludo, espero que así este mejor presentado el mensaje.