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

resumir dos cursores en uno?

Estas en el tema de resumir dos cursores en uno? en el foro de Mysql en Foros del Web. Hola a todos. Vereis, tengo dos cursores que realizan (practicamente) la misma tarea, con la "única" diferencia de que leen de dos tablas diferentes. @import ...
  #1 (permalink)  
Antiguo 19/04/2013, 03:09
 
Fecha de Ingreso: junio-2010
Mensajes: 373
Antigüedad: 14 años, 5 meses
Puntos: 11
resumir dos cursores en uno?

Hola a todos.

Vereis, tengo dos cursores que realizan (practicamente) la misma tarea, con la "única" diferencia de que leen de dos tablas diferentes.

Código MySQL:
Ver original
  1. --'idn' es el ID de usuario. Lo recojo en el CALL al PROCEDURE.
  2. DECLARE num1, num2 INT;
  3. DECLARE c1 CURSOR FOR SELECT ID FROM tabla1 WHERE campo1 = valor1 ORDER BY nombre ASC;
  4. DECLARE c2 CURSOR FOR SELECT ID FROM tabla2 WHERE campo2 = valor2 ORDER BY nombre ASC;
  5.  
  6. OPEN c1;
  7.     orden1: LOOP
  8.         FETCH c1 INTO num1;
  9.         IF num1 = idn THEN
  10.             LEAVE orden1;
  11.         ELSE
  12.             SET i = i + 1;
  13.         END IF;
  14.     END LOOP orden1;
  15. CLOSE c1;
  16.  
  17. OPEN c2;
  18.     orden2: LOOP
  19.         FETCH c2 INTO num2;
  20.         IF num2 = idn THEN
  21.             LEAVE orden2;
  22.         ELSE
  23.             SET j = j + 1;
  24.         END IF;
  25.     END LOOP orden2;
  26. CLOSE c2;

Lo que me pregunto es: se puede resumir esto de alguna manera? Puedo crear un único cursor que lea primero en una tabla y luego en otra? o, puedo crear de alguna manera un único loop que lea ambos y los saque a cada uno cuando corresponda?

Etiquetas: campo, cursores, select, tabla
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 20:01.