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

ayuda con SP varias consultas..

Estas en el tema de ayuda con SP varias consultas.. en el foro de Mysql en Foros del Web. hola quiciera saber si se puede hacer un SP que reciba un parametro y con este parametreo haga 4 consultas a unas tablas y solo ...
  #1 (permalink)  
Antiguo 09/12/2010, 11:09
Avatar de RIVERMILLOS  
Fecha de Ingreso: marzo-2010
Mensajes: 1.336
Antigüedad: 14 años, 1 mes
Puntos: 15
ayuda con SP varias consultas..

hola quiciera saber si se puede hacer un SP que reciba un parametro y con este parametreo haga 4 consultas a unas tablas y solo me retorne el los registros de las tablas que no dieron null.

?


saludos
  #2 (permalink)  
Antiguo 09/12/2010, 11:38
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, 5 meses
Puntos: 2658
Respuesta: ayuda con SP varias consultas..

Tienes que darnos información más específica: Describe la estructura de las tablas y de qué parámetro se trata y contra qué campos vas a compararlo.
__________________
¿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 09/12/2010, 13:23
Avatar de RIVERMILLOS  
Fecha de Ingreso: marzo-2010
Mensajes: 1.336
Antigüedad: 14 años, 1 mes
Puntos: 15
Respuesta: ayuda con SP varias consultas..

hola mira esta es la estructura de las tablas.



entonces lo que necesito es hacer una consulta a estas tablas 'preguntas', 'normales' , 'juegos' , 'valores'. y mirar en donde esta el registro digamos idreglas=5
entonces quiero hacer un sp para hacer las 4 consultas y la que me de resultados retornarlos. no se si sea la mejor manera.


saludos
  #4 (permalink)  
Antiguo 09/12/2010, 13:58
Avatar de RIVERMILLOS  
Fecha de Ingreso: marzo-2010
Mensajes: 1.336
Antigüedad: 14 años, 1 mes
Puntos: 15
Respuesta: ayuda con SP varias consultas..

Seria algo como asi? bueno en el caso que se pueda hacer.

Código MySQL:
Ver original
  1. DELIMITER $$
  2.  
  3. DROP PROCEDURE IF EXISTS `getRule` $$
  4. CREATE DEFINER=`root`@`localhost` PROCEDURE `getRule`(in idrule integer)
  5.  
  6. IF(select * from preguntas where (idreglas = idrule)); THEN
  7.  
  8. IF(select * from normales where (idreglas = idrule)); THEN
  9.  
  10. IF(select * from juegos where (idreglas = idrule)); THEN
  11.  
  12. IF(select * from valores where (idreglas = idrule)); THEN
  13.  
  14. END $$
  15.  
  16. DELIMITER ;

saludos
  #5 (permalink)  
Antiguo 09/12/2010, 20:41
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, 5 meses
Puntos: 2658
Respuesta: ayuda con SP varias consultas..

Tienes que mirar mejor la sintaxis de los stored procedures. Estás poniendo los delimitadores en cualquier parte.
El proceso no tiene mucho sentido a menos que la estructura de las tablas fuese la misma.
¿Es así? De serlo podría andar por aquí:
Código MySQL:
Ver original
  1. DELIMITER $$
  2.  
  3. DROP PROCEDURE IF EXISTS `getRule` $$
  4. CREATE DEFINER=`root`@`localhost` PROCEDURE `getRule`(IN idrule INTEGER)
  5.       SELECT * FROM preguntas WHERE idreglas = idrule
  6.       UNION
  7.       SELECT * FROM normales WHERE idreglas = idrule
  8.       UNION
  9.       SELECT * FROM juegos WHERE idreglas = idrule
  10.       UNION
  11.       SELECT * FROM valores WHERE idreglas = idrule;
  12. END $$
  13.  
  14. DELIMITER ;

Si tienen diferente estructura, no puede hacerse un UNION, pero tampoco puedes hacer un procedure que devuelva varios SELECTS. Sólo puede devolver un único resultado, tal vez algo así:

Código MySQL:
Ver original
  1. DELIMITER $$
  2.  
  3. DROP PROCEDURE IF EXISTS `getRule` $$
  4. CREATE DEFINER=`root`@`localhost` PROCEDURE `getRule`(IN idrule INTEGER)
  5.       IF (SELECT COUNT(*) FROM preguntas WHERE idreglas = idrule) > 0 THEN
  6.             SELECT *
  7.             FROM preguntas
  8.             WHERE idreglas = idrule;
  9.       ELSEIF (SELECT COUNT(*) FROM normales WHERE idreglas = idrule) > 0 THEN
  10.             SELECT *
  11.             FROM normales
  12.             WHERE idreglas = idrule;
  13.       ELSEIF (SELECT COUNT(*) FROM juegos WHERE idreglas = idrule) > 0 THEN
  14.             SELECT *
  15.             FROM juegos
  16.             WHERE idreglas = idrule;
  17.       ELSE
  18.             SELECT *
  19.             FROM valores
  20.             WHERE idreglas = idrule;
  21.       END IF;
  22. END $$

DELIMITER ;
__________________
¿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 09/12/2010, 22:00
Avatar de RIVERMILLOS  
Fecha de Ingreso: marzo-2010
Mensajes: 1.336
Antigüedad: 14 años, 1 mes
Puntos: 15
Respuesta: ayuda con SP varias consultas..

hola gracias por la respuesta las tablas tienen diferente estructura , y deacuerdo a los select solo necesito uno no devolveria varios, osea seria algo asi .. se van haciendo la consultas y en el caso de que la primera arroje resultados ya no se hacen las otras 3. solo necesito una la que coincida.
supongo que seria la segunda?que colocaste

saludos

Etiquetas: Ninguno
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 11:48.