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

consulta recursiva en mysql

Estas en el tema de consulta recursiva en mysql en el foro de Mysql en Foros del Web. Hola estimados, pues nuevamente con una consulta, trato de hacer un portalillo sobre encuestas de satisfacción se trata de lo siguisnte: en un curso al ...
  #1 (permalink)  
Antiguo 03/12/2013, 20:50
Avatar de elmoikano  
Fecha de Ingreso: enero-2013
Mensajes: 50
Antigüedad: 11 años, 10 meses
Puntos: 0
Pregunta consulta recursiva en mysql

Hola estimados, pues nuevamente con una consulta, trato de hacer un portalillo sobre encuestas de satisfacción se trata de lo siguisnte:

en un curso al final cada alumno debe llenar una encuesta de satisfaccion, ese curso impartido tiene un folio digamos el 2, entonces al consultar las encuestas sobre un curso especifico creo que estos de las consultas recursivas sería como la oslución ami necesidad, pero al intentar lanzar la busqueda me un error: acontinuación los datos de la tabla dbencuestas:

Código:
+--------------+----------+---------------------+--------+-------+
| id_encuesta1 | id_curso | fecha               | profun | orden |
+--------------+----------+---------------------+--------+-------+
|            1 |        1 | 2013-12-02 00:00:00 |      5 |     4 |
|            2 |        1 | 2013-12-02 00:00:00 |      5 |     4 |
|            3 |        1 | 2013-12-02 00:00:00 |      5 |     4 |
|            4 |        1 | 2013-12-02 00:00:00 |      5 |     4 |
|            5 |        2 | 2013-12-02 00:00:00 |      5 |     4 |
|            6 |        2 | 2013-12-02 00:00:00 |      5 |     4 |
|            7 |        3 | 2013-12-03 00:00:00 |      5 |     4 |
|            8 |        3 | 2013-12-03 00:00:00 |      5 |     4 |
|            9 |        3 | 2013-12-03 00:00:00 |      5 |     4 |
|           10 |        3 | 2013-12-03 00:00:00 |      5 |     4 |
|           11 |        4 | 2013-12-04 00:00:00 |      5 |     4 |
|           12 |        4 | 2013-12-04 00:00:00 |      5 |     4 |
|           13 |        4 | 2013-12-04 00:00:00 |      5 |     4 |
|           14 |        4 | 2013-12-04 00:00:00 |      5 |     4 |
|           15 |        4 | 2013-12-04 00:00:00 |      5 |     4 |
|           16 |        4 | 2013-12-04 00:00:00 |      5 |     4 |
+--------------+----------+---------------------+--------+-------+
la consulta que hago es esta
Código SQL:
Ver original
  1. WITH cte_enc (id_curso,fecha)
  2. AS (SELECT id_curso,fecha FROM dbencuestas WHERE id_curso = 2
  3. UNION ALL SELECT e.id_curso,e.fecha FROM dbencuestas e INNER JOIN cte_enc cte ON e.id_curso = cte.id)
  4. SELECT id_curso,fecha FROM cte_enc;

pero me envía el siguiente error

Código:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'cte_enc (id_curso,fecha) as (select id_curso,fecha from dbencuestas where id_cur' at line 1
No ejecuta la consulta por que dice que desde el inicio esta mal, que puede estar pasando?

Saludos
__________________
Bibliotecario pero morboso de las Tecnologías....

Última edición por gnzsoloyo; 03/12/2013 a las 21:25
  #2 (permalink)  
Antiguo 03/12/2013, 21:26
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: consulta recursiva en mysql

Estás confundiendo Oracle con MySQL. No tienen los mismos recursos, y ciertas funcionalidades no existen en todos los DBMS ni en todos ellos se escriben de la misma forma.
Puntualmente, no existen las consultas recursivas en MySQL.
__________________
¿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 05/12/2013, 11:01
Avatar de elmoikano  
Fecha de Ingreso: enero-2013
Mensajes: 50
Antigüedad: 11 años, 10 meses
Puntos: 0
Respuesta: consulta recursiva en mysql

Hombre, que me has dado la orientada de l vida, gracias por la aclaración y bueno creo que he encontrado una solución seguire buscando.

Lo que de momento satisface lo que deseo hacer está en el siguiente link;

http://www.latindevelopers.com/forum/arbol-en-mysql-t59.html
__________________
Bibliotecario pero morboso de las Tecnologías....
  #4 (permalink)  
Antiguo 05/12/2013, 11:12
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: consulta recursiva en mysql

Uhhh!
Es un poco vieja la solución, y en todo caso sólo plantea una relación padre/hijo, y no un árbol.
Si hubieses avanzado un poco en tu pregunta, te habríamos dado esa solución, pero un poco más detallada, y además es un tema tratado infinidad de veces ene ste foro. Bien podrías haber usado el buscador del foro, por ejemplo.
Te recomiendo, en todo caso, que si vas a usar MySQL y no Oracle u otra cosa, mires este link: http://www.forosdelweb.com/f86/herra...3/#post4414201

Por otro lado, la respuesta que te di era para ajustarme a tu pregunta.
No preguntaste cómo se hacía una consulta para un arbol de relaciones, sino cómo se escribía una consulta recursiva, que no existen en e este DBMS (yo las uso bastante seguirdo pero en Oracle).

Para futuro, trata de especificar mejor lo que quieres obtener y será más fácil guiarte.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 05/12/2013, 11:41
Avatar de elmoikano  
Fecha de Ingreso: enero-2013
Mensajes: 50
Antigüedad: 11 años, 10 meses
Puntos: 0
Respuesta: consulta recursiva en mysql

Gracias por tu orientación ahora entiendo que también antes de preguntar debo al menos nombrarlo correctamente, lo tendre en cuenta para futuro. Saludos cordiales.
__________________
Bibliotecario pero morboso de las Tecnologías....

Etiquetas: sql
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:58.