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

A ver si alguien sabe como

Estas en el tema de A ver si alguien sabe como en el foro de Mysql en Foros del Web. Hola tengo que optimizar unas consultas a mysql pues la aplicación se ve sobrecargada y la verdad que no debería tanto pues no hay más ...
  #1 (permalink)  
Antiguo 25/05/2010, 01:31
 
Fecha de Ingreso: octubre-2009
Mensajes: 45
Antigüedad: 14 años, 6 meses
Puntos: 3
A ver si alguien sabe como

Hola tengo que optimizar unas consultas a mysql pues la aplicación se ve sobrecargada y la verdad que no debería tanto pues no hay más de 3000 registros. Esto va a parecer como un ejercicio jeje, a ver si un máquina de vosotros lo puede resolver. Bueno os cuento las tablas que tengo y lo que quiero obtener

animaciones - id_animacion id_plano id_usuario id_estado fecha

maquetaciones - id_maquetacion id_plano id_usuario id_estado fecha

planos - id_plano id_secuencia numero capas

secuencias - id_secuencia id_capitulo numero planos

capitulos - id_capitulo id_proyecto numero nombre

-----------------------------------

Tengo que obtener el número de capitulo con el numero de planos que estos no aparezcan en la tabla maquetaciones y que el id_estado sea 2.

la consulta deberia dar un resultado así:
numero_capitulo número_plano
2 ------------------------ 1534
2 ------------------------ 1536
3 ------------------------ 2543
3 ------------------------ 844
3 ------------------------ 1763
4 ------------------------ 1928
.... etc

Lo que yo he llevado a cabo para conseguir esto de es la siguiente forma pero necesito de varias consultas

Código PHP:
SELECT id_plano
FROM animaciones
WHERE id_plano NOT
IN 
(
SELECT id_plano
FROM maquetaciones
)
AND 
id_estado =
Con esto obtengo todos los planos que no aparecen en la tabla maquetaciones y tienen id_estado=2

Después con un bucle voy recorriendo plano por plano y realizando las siguientes consultas

Código PHP:
select numero 
from planos 
where id_plano
=$id_plano 
De esta obtengo el numero del plano

Código PHP:
select numero
 from capitulos 
where id_capitulo 
= (select id_capitulos
 from secuencias 
where id_secuencia 
= (select id_secuencia 
from planos 
where id_plano
=$id_plano)) 
De esta otra obtengo el numero del capítulo.

y a continuación voy montando en una tabla la fila con los dos datos obtenidos.
Claro al tener que hacer estas dos consultas por cada id_plano se ralentiza mucho
el sistema. La idea es sacar todo en una sola consulta como mencioné al principio.
Bueno a ver si un experto sabría como puedo hacerlo. Gracias de antemano

Etiquetas: ver
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 21:13.