MySQL - Comparar dos filas obtenidas de una consulta

 
Vista:
Imágen de perfil de Cokes

Comparar dos filas obtenidas de una consulta

Publicado por Cokes (4 intervenciones) el 19/01/2015 16:51:02
Amigos, espero alguien me pueda ayudar, de ser así estaría muy agradecido.

Estoy tratando de hacer una consulta que me compare dos valores que son respuestas de una prueba, en una tabla tengo la pregunta con la alternativa correcta y en otra tabla las repuestas. La idea es que la consulta me devuelva si la respuesta está correcta.

PREGUNTA
---------------------------+
idPregunta
pregunta
respuesta_correcta

RESPUESTA
---------------------------+
id_Respuesta
respuesta
PPREGUNTA_idPregunta




Necesito que me entregue lo siguiente

idPregunta | respuesta | respuesta_correcta | RESULTADO
-----------------------------------------------------------------------------------------
13+++++++ |++++A +++ |+++++++B+++++++++| incorrecta
-------------------------------------------------------------------------------------------
14+++++++ |++++C +++ |+++++++C+++++++++| correcta



Espero me puedan ayudar, desde ya, muchas gracias
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
Imágen de perfil de xve
Val: 796
Oro
Ha mantenido su posición en MySQL (en relación al último mes)
Gráfica de MySQL

Comparar dos filas obtenidas de una consulta

Publicado por xve (1151 intervenciones) el 19/01/2015 19:53:14
Hola Cokes, según entiendo, seria con un JOIN, no?

algo así:
1
2
3
SELECT p.idPregunta, r.respuesta, p.respuesta_correcta,
CASE WHEN r.respuesta=p.respuesta_correcta THEN "correcta" ELSE "incorrecta" AS RESULTADO
FROM PREGUNTA p LEFT JOIN RESPUESTA r ON p.idPregunta=r.PPREGUNTA_idPregunta

Puedes probarlo y comentarnos?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Cokes

Comparar dos filas obtenidas de una consulta

Publicado por Cokes (4 intervenciones) el 20/01/2015 15:30:17
Gracias xve, tu respuesta me ayudó mucho, finalmente relicé la consulta con un if, ya que no se por qué el case me arrojaba un error.

Así lo hoce finalmente:

SELECT p.TIPO_PREGUNTA_idTIPO_PREGUNTA,
p.idPREGUNTA,
r.respuesta,
p.respuesta_correcta,
if (r.respuesta = p.respuesta_correcta, 'correcta','incorrecta') as resultado
FROM pregunta as p LEFT JOIN respuesta_pregunta as r ON p.idPREGUNTA = r.PREGUNTA_idPREGUNTA
where r.MATRICULA_idMATRICULA = '190'


Gracias nuevamente
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de xve
Val: 796
Oro
Ha mantenido su posición en MySQL (en relación al último mes)
Gráfica de MySQL

Comparar dos filas obtenidas de una consulta

Publicado por xve (1151 intervenciones) el 20/01/2015 17:43:25
Gracias por compartirlo Cokes!!! lo veo perfecto!!!
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