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

Como almacenar temporalmente el resultado(una tabla) de una consulta ?

Estas en el tema de Como almacenar temporalmente el resultado(una tabla) de una consulta ? en el foro de Mysql en Foros del Web. Hola a todos, Tengo una duda, cuando se hace un select de varias tablas generalmente el resultado es otra tabla compuesto de campos de las ...
  #1 (permalink)  
Antiguo 24/01/2007, 11:19
 
Fecha de Ingreso: septiembre-2006
Mensajes: 34
Antigüedad: 18 años, 2 meses
Puntos: 0
Como almacenar temporalmente el resultado(una tabla) de una consulta ?

Hola a todos,

Tengo una duda, cuando se hace un select de varias tablas generalmente el resultado es otra tabla compuesto de campos de las tablas originales, ahora a esta tabla resultado quiero aplicarle otra consulta, es decir realizar otro select,

¿como podria se podria guardar la tabla resultado temporalmente para aplicarle el select? o tal vez darle un alias a toda la consulta y como el resultado de la consulta es una tabla, utilizar el alias dado en la otra consulta ??

Gracias por la ayuda,
saludos.
  #2 (permalink)  
Antiguo 25/01/2007, 02:51
Avatar de Lord of freaks  
Fecha de Ingreso: octubre-2004
Ubicación: Madrid
Mensajes: 334
Antigüedad: 20 años, 1 mes
Puntos: 2
Re: Como almacenar temporalmente el resultado(una tabla) de una consulta ?

Podrías poner un ejemplo? creo que podrías solucionar lo que buscas mediante una subconsulta o mediante UNION pero así en vacío parece un poco abstracto para ayudarte :)

Un saludo
__________________
Una vez un elemental de rayos mató una tribu entera de tritones.

¡¡ El sólo quería darse un baño !!

http://www.frikilandia.com

Neither Fu Nor Fa
  #3 (permalink)  
Antiguo 26/01/2007, 06:45
 
Fecha de Ingreso: septiembre-2006
Mensajes: 34
Antigüedad: 18 años, 2 meses
Puntos: 0
Hola Lord of freaks,

un ejemplo seria este problema que tengo en este
mensaje w w w . forosdelweb . com / showthread.php?t=458977
En la primera consulta simplemente sumo 2 notas que corresponden a una misma materia y la tabla que muestro despues salen las notas sumadas, ahora tengo que sacar el promedio de las notas de todas las materias para lo cual tengo que aplicar un group by idalumno y avg(notas) y listo, pero el lio esta en hacerlo en una sola consulta o con subconsultas, porque en una sola consulta tienes que agrupar sum, avg, having, group by y es complicado, por eso preguntaba si se puede almanacenar temporalmente el resultado(tabla) de una consulta y utilizar la tabla resultado en otra consulta, de esa manera guardo el resultado de la primera consulta y despues aplico avg(notas) y group by idalumno y listo,

Gracias por la ayuda,
saludos.
  #4 (permalink)  
Antiguo 26/01/2007, 08:06
Avatar de PequeñoMauro  
Fecha de Ingreso: abril-2006
Ubicación: Lima - Perú
Mensajes: 600
Antigüedad: 18 años, 7 meses
Puntos: 3
Re: Como almacenar temporalmente el resultado(una tabla) de una consulta ?

Como planteas al inicio, se trataría la consulta como una tabla, todo la consulta encerrada en parentesis y poniendole un alias, esencialmente, como repito, como si fuera una tabla, y le haces el select a esa consulta, que vendría a ser una sub-consulta.
La dificultad esta en si es que tienes la versión de mysql que te permite hacer subconsultas, todo depende de eso.
Y si no puedes, puedes crearte una vista en base a la primera consulta, y luego generar tus resultados en base a la vista creada.
Saludos
__________________
"Nada en mis manos traigo tan solo a tu cruz me aferro....."
  #5 (permalink)  
Antiguo 26/01/2007, 16:07
 
Fecha de Ingreso: septiembre-2006
Mensajes: 34
Antigüedad: 18 años, 2 meses
Puntos: 0
Hola PequeñoMauro,

podrias dar un pequeño ejemplo de lo que dices, mas que todo para ver la sintaxis y como se escribe, la version de mysql es 5.0.27

Gracias por la ayuda,
saludos.
  #6 (permalink)  
Antiguo 29/01/2007, 08:19
Avatar de PequeñoMauro  
Fecha de Ingreso: abril-2006
Ubicación: Lima - Perú
Mensajes: 600
Antigüedad: 18 años, 7 meses
Puntos: 3
Re: Como almacenar temporalmente el resultado(una tabla) de una consulta ?

Tomando como ejemplo el link que haz puesto AQUI se tiene la consulta:

Código:
SELECT id, appaterno, etc.... FROM
(SELECT a.id, a.appaterno, a.apmaterno, a.nombre, n.idparalelo, n.idmateria, sum( n.nota ) AS promedio 
FROM alumnos a, inscripciones i, notas n 
WHERE a.id = i.idalumno 
AND a.id = n.idalumno 
AND i.estado = '1' 
AND i.gestion = '2007' 
AND i.gestion = n.gestion 
AND i.estado = a.estado 
AND n.idtiponota <> '7' 
AND n.idtiponota <> '8' 
AND n.idtiponota <> '9' 
AND n.idtiponota <> '10' 
AND n.idtiponota <> '13' 
AND n.idtiponota <> '14' 
GROUP BY n.idalumno, n.idmateria 
HAVING sum( n.idtiponota ) = '11' ) AS temporal
Esta consulta sería tu "nueva tabla", los campos de esta nueva tabla serían los campos seleccionados, a partir de eso, haces el SELECT a esa consulta, cerrandolo en parentesis y dandole un alias, y si gustas podrias hacer un join con otra tabla.
La otra opción es, creando una vista de la consulta: AQUI
El concepto es similar.
Saludos
__________________
"Nada en mis manos traigo tan solo a tu cruz me aferro....."
  #7 (permalink)  
Antiguo 01/02/2007, 08:15
 
Fecha de Ingreso: septiembre-2006
Mensajes: 34
Antigüedad: 18 años, 2 meses
Puntos: 0
Re: Como almacenar temporalmente el resultado(una tabla) de una consulta ?

Hola PequeñoMauro,

no sabia que se podia hacer de esa manera, muchas gracias por la ayuda.

saludos.
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 13:46.