SQL - Referenciar tres campos de una tabla a id de otra

   
Vista:

Referenciar tres campos de una tabla a id de otra

Publicado por Daniel Prado (2 intervenciones) el 16/04/2009 06:49:09
Mi consulta es la siguiente, tengo una tabla de preguntas, donde cada pregunta tiene una respuesta correcta, y dos posibles opciones que el usuario le especifica de acuerdo a la tabla respuestas.... el asunto es el siguiente, los campos opcion1, opcion2 y respuesta_correcta son referencia al id de la tabla respuestas, pero quiero mostrar en una tabla, la pregunta, con la respuesta y las opciones 1 y opciones 2 en la misma consulta.... osea hacer 3 referencias al mismo campo de una tabla y ahí radica el problema.... no sé como hacer eso jajaja. Hasta el momento en mi query tengo lo siguiente:

SELECT
Preguntas.descripcion as 'Pregunta',
Respuestas.descripcion as 'Respuesta',
Respuestas.descripcion as 'Opcion1'
FROM
Preguntas,
Respuestas
WHERE
Respuestas.id = Preguntas.respuesta_correcta
AND
Respuestas.id = Preguntas.opcion1

Les suplico ayuda!!!! no se me ocurre nada!!!!! por favor en serio! gracias por su tiempo amigos foreros de la web del programador!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Referenciar tres campos de una tabla a id de ot

Publicado por Josep Marí García (3 intervenciones) el 16/04/2009 12:06:55
Venga, intentémoslo así:

SELECT
Preguntas.descripcion as 'Pregunta',
Respuestas0.descripcion as 'Respuesta',
Respuestas1.descripcion as 'Opcion1' ,
Respuestas2.descripcion as 'Opcion2' ,
FROM
Preguntas,
Respuestas r0,
Respuestas r1,
Respuestas r2
WHERE
r0.id = Preguntas.respuesta_correcta
AND
r1.id = Preguntas.opcion1
AND
r2.id = Preguntas.opcion2

el descriptor de tabla r0, r1... te permite usar varias veces la misma tabla como fueran tablas disintas.
Ya me dirás si te funciona.
Saludos.

Josep Marí
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar