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

query en mysql se me enrredo

Estas en el tema de query en mysql se me enrredo en el foro de Mysql en Foros del Web. Hola, tengo la siguiente duda !!! dispongo de dos tablas en mysql: con la siguiente estructura: ahora bien tengo los siguiente datos en las dos ...
  #1 (permalink)  
Antiguo 12/05/2011, 14:04
 
Fecha de Ingreso: abril-2011
Ubicación: chile
Mensajes: 16
Antigüedad: 13 años
Puntos: 0
Pregunta query en mysql se me enrredo

Hola, tengo la siguiente duda !!! dispongo de dos tablas en mysql:
con la siguiente estructura:



ahora bien tengo los siguiente datos en las dos tablas:

Tabla PREGUNTAS:

Código MySQL:
Ver original
  1. id_Preguntas    descripcion     titulo
  2.      1                         ¿Donde queda España?
  3.      2                         ¿Cuantos años tiene la tierra?
  4.      3                         ¿sigla de emergencia?

Tabla OPCIONES:

Código MySQL:
Ver original
  1. id_Opciones     descripcion     FK_id_Preguntas
  2.     1          Europa                   1
  3.     2          Asia                     1
  4.     3       Sudamérica                  1
  5.     4         4645                      2
  6.     5       454546                      2
  7.     6   456456465                       2
  8.     7   1121212121                      2
  9.     8           WWW                     3
  10.     9          FIFA                     3
  11.     10         SOS                      3
  12.    11        ANFP                       3
  13.    12        WTF                        3


LA PREGUNTA ES LA SIGUIENTE:

Necesito listar el nombre de la pregunta inmediatamente después las opciones asociadas a la pregunta, y se me armo un enrredo estaba tratando de usar cursores ya que son varias preguntas pero nose ayuda por favor ???

la consulta que tenia era la siguiente:

SELECT DISTINCT WP.titulo, WP.descripcion
FROM WQTI_Preguntas WP, WQTI_Opciones WO
WHERE WP.id_Preguntas = WO.FK_id_Preguntas


gracias...

Última edición por duraznero; 12/05/2011 a las 14:20
  #2 (permalink)  
Antiguo 12/05/2011, 15:11
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 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.
  #3 (permalink)  
Antiguo 12/05/2011, 16:05
 
Fecha de Ingreso: abril-2011
Ubicación: chile
Mensajes: 16
Antigüedad: 13 años
Puntos: 0
De acuerdo Respuesta: query en mysql se me enrredo

Cita:
Iniciado por leonardo_josue Ver Mensaje
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.
muchisimas gracias !!!!!!!!!!!!!!!!!!!!!!! Leo !!!!!!!!!!!!!!!!!!!!!!!!! te anoto un 10 !!!!!!!!!!
saludos duraznero =)

Etiquetas: query
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 05:53.