Ver Mensaje Individual
  #2 (permalink)  
Antiguo 12/05/2011, 15:11
leonardo_josue
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 4 meses
Puntos: 447
Respuesta: query en mysql se me enrredo

Hola duraznero... hay varias formas de llegar al resultado que quieres, sin necesidad de utilizar cursores, de comento una de ellas, para ver si te puede servir.

Código MySQL:
Ver original
  1. mysql> create table preguntas (id_Preguntas int, descripcion varchar(10),
  2.     -> titulo varchar (50));
  3. Query OK, 0 rows affected (0.13 sec)
  4.  
  5. mysql> insert into preguntas values (1, null, '¿Donde queda España?'),
  6.     -> (2, null, '¿Cuantos años tiene la tierra?'),
  7.     -> (3, null, '¿Sigla de emergencia?');
  8. Query OK, 3 rows affected (0.05 sec)
  9. Records: 3  Duplicates: 0  Warnings: 0
  10.  
  11. mysql> select * from preguntas;
  12. +--------------+-------------+--------------------------------+
  13. | id_Preguntas | descripcion | titulo                         |
  14. +--------------+-------------+--------------------------------+
  15. |            1 | NULL        | ¿Donde queda España?           |
  16. |            2 | NULL        | ¿Cuantos años tiene la tierra? |
  17. |            3 | NULL        | ¿Sigla de emergencia?          |
  18. +--------------+-------------+--------------------------------+
  19. 3 rows in set (0.00 sec)
  20.  
  21. mysql> create table opciones (id_Opciones int, descripcion varchar(50),
  22.     -> FK_id_Preguntas int);
  23. Query OK, 0 rows affected (0.06 sec)
  24.  
  25. mysql> insert into opciones values (1, 'Europa', 1),
  26.     -> (2, 'Asia', 1), (3, 'Sudamérica', 1), (4, '4645', 2),
  27.     -> (5, '454546', 2), (6, '456456465', 2), (7, '1121212121', 2),
  28.     -> (8, 'WWW', 3), (9, 'FIFA', 3), (10, 'SOS', 3),
  29.     -> (11, 'ANFP', 3), (12, 'WTF', 3);
  30. Query OK, 12 rows affected (0.03 sec)
  31. Records: 12  Duplicates: 0  Warnings: 0
  32.  
  33. mysql> select * from opciones;
  34. +-------------+-------------+-----------------+
  35. | id_Opciones | descripcion | FK_id_Preguntas |
  36. +-------------+-------------+-----------------+
  37. |           1 | Europa      |               1 |
  38. |           2 | Asia        |               1 |
  39. |           3 | Sudamérica  |               1 |
  40. |           4 | 4645        |               2 |
  41. |           5 | 454546      |               2 |
  42. |           6 | 456456465   |               2 |
  43. |           7 | 1121212121  |               2 |
  44. |           8 | WWW         |               3 |
  45. |           9 | FIFA        |               3 |
  46. |          10 | SOS         |               3 |
  47. |          11 | ANFP        |               3 |
  48. |          12 | WTF         |               3 |
  49. +-------------+-------------+-----------------+
  50. 12 rows in set (0.00 sec)
  51.  
  52. mysql> select 1 as nivel, id_preguntas id_pregunta,
  53.     -> 0 as id_opcion, titulo descripcion
  54.     -> from preguntas
  55.     -> union
  56.     -> select 2 as nivel, FK_id_Preguntas id_pregunta,
  57.     -> id_opciones id_opcion, descripcion
  58.     -> from opciones
  59.     -> order by id_pregunta, nivel, id_opcion;
  60. +-------+-------------+-----------+--------------------------------+
  61. | nivel | id_pregunta | id_opcion | descripcion                    |
  62. +-------+-------------+-----------+--------------------------------+
  63. |     1 |           1 |         0 | ¿Donde queda España?           |
  64. |     2 |           1 |         1 | Europa                         |
  65. |     2 |           1 |         2 | Asia                           |
  66. |     2 |           1 |         3 | Sudamérica                     |
  67. |     1 |           2 |         0 | ¿Cuantos años tiene la tierra? |
  68. |     2 |           2 |         4 | 4645                           |
  69. |     2 |           2 |         5 | 454546                         |
  70. |     2 |           2 |         6 | 456456465                      |
  71. |     2 |           2 |         7 | 1121212121                     |
  72. |     1 |           3 |         0 | ¿Sigla de emergencia?          |
  73. |     2 |           3 |         8 | WWW                            |
  74. |     2 |           3 |         9 | FIFA                           |
  75. |     2 |           3 |        10 | SOS                            |
  76. |     2 |           3 |        11 | ANFP                           |
  77. |     2 |           3 |        12 | WTF                            |
  78. +-------+-------------+-----------+--------------------------------+
  79. 15 rows in set (0.00 sec)

Dale un vistazo y nos comentas

Saludos
Leo.