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

Consulta SELECT

Estas en el tema de Consulta SELECT en el foro de Mysql en Foros del Web. Buenas. Estoy intentando hacer un sistema de encuestas en PHP, pero dado a mi bajo nivel de SQL no se como obtener estos datos en ...
  #1 (permalink)  
Antiguo 18/04/2013, 13:40
Avatar de Karmac  
Fecha de Ingreso: agosto-2011
Ubicación: Bilbao
Mensajes: 196
Antigüedad: 12 años, 8 meses
Puntos: 34
Pregunta Consulta SELECT

Buenas. Estoy intentando hacer un sistema de encuestas en PHP, pero dado a mi bajo nivel de SQL no se como obtener estos datos en una única consulta (sabría realizar unas cuantas y ir uniéndolas). Estoy seguro de que puede hacerse de alguna forma.

Mis tablas son las siguientes (espero que puedan visualizarlas correctamente):

Poll_Questions:


Poll_Answers:


Poll_Votes:


La cosa sería seleccionar Poll_Questions.Question WHERE Poll_Questions.QID = $QID y Poll_Answers.Answer WHERE Poll_Questions = $QID (todas las respuestas posibles).
$QID sería el ID de la pregunta actual, variable que paso mediante PHP.

Y ya si se puede, seleccionar el número de votos de cada respuestas desde Poll_Votes.

Juro que pueden considerarse expertos si consiguen hacer esto, porque a mi me parece bastante complicado solo de plantearlo. Muchísimas gracias si me salvan.
  #2 (permalink)  
Antiguo 18/04/2013, 13:59
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Consulta SELECT

Si entendí, lo único que necesitas sería:
Código MySQL:
Ver original
  1. SELECT * FROM Poll_Questions LEFT JOIN Poll_Answers USING (QID) WHERE Poll_Questions.QID = $QID
Con eso obtendrás las respuestas para esa pregunta.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 18/04/2013, 14:14
Avatar de Karmac  
Fecha de Ingreso: agosto-2011
Ubicación: Bilbao
Mensajes: 196
Antigüedad: 12 años, 8 meses
Puntos: 34
Respuesta: Consulta SELECT

Cita:
Editado: Código de programación no permitido en Foros de Bases de Datos.
Solo me devuelve una respuesta

Última edición por gnzsoloyo; 18/04/2013 a las 21:21 Razón: Código de programación no permitido en Foros de Bases de Datos.
  #4 (permalink)  
Antiguo 18/04/2013, 14:37
Avatar de Karmac  
Fecha de Ingreso: agosto-2011
Ubicación: Bilbao
Mensajes: 196
Antigüedad: 12 años, 8 meses
Puntos: 34
Respuesta: Consulta SELECT

EDITADO:
Cita:
Editado: Código de programación no permitido en Foros de Bases de Datos.
Funciona bien, ¿pero se podrían unir todas las respuestas en un solo objeto? Que Answer contenga las respuestas como un array o algo parecido. ¿Y para obtener los votos?

Perdona mi ignorancia. Gracias.

Última edición por gnzsoloyo; 18/04/2013 a las 21:21
  #5 (permalink)  
Antiguo 18/04/2013, 21:30
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Consulta SELECT

Así te devolvería todo:
Código MySQL:
Ver original
  1. SELECT P.QID, P.Question, A.AID, A.Answer, V.VID, V.IP, FROM_UNIXTIME(V.Date) Fecha
  2.     Poll_Questions P
  3.     INNER JOIN Poll_Answers A USING (QID)

Así sólo una única pregunta con todas sus opciones.
Código MySQL:
Ver original
  1. SELECT P.QID, P.Question, A.AID, A.Answer, V.VID, V.IP, FROM_UNIXTIME(V.Date) Fecha
  2.     Poll_Questions P
  3.     INNER JOIN Poll_Answers A USING (QID)
  4.     Poll_Questions.QID = $QID

Así sólo una respondida (si se respondió alguna):
Código MySQL:
Ver original
  1. SELECT P.QID, P.Question, A.AID, A.Answer, V.VID, V.IP, FROM_UNIXTIME(V.Date) Fecha
  2.     Poll_Questions P
  3.     INNER JOIN Poll_Answers A USING (QID)
  4.     INNER JOIN Poll_Votes V USING(QID, AID)
  5.     Poll_Questions.QID = $QID
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #6 (permalink)  
Antiguo 21/04/2013, 02:27
Avatar de Karmac  
Fecha de Ingreso: agosto-2011
Ubicación: Bilbao
Mensajes: 196
Antigüedad: 12 años, 8 meses
Puntos: 34
Respuesta: Consulta SELECT

Gracias por vuestras respuestas.
¿Habría forma de modificar la última consulta para que devuelva también las preguntas que no tienen ningún voto?

Y en términos de memoria, ¿es mejor complicarme como lo estoy haciendo yo o simplemente puedo realizar tres consultas y unir los datos?

Saludos.

Etiquetas: php, select, sql, 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 10:23.