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

[SOLUCIONADO] consulta mysql

Estas en el tema de consulta mysql en el foro de Bases de Datos General en Foros del Web. Buenas amigos del foro como están? Vuelvo una vez mas necesitar ayuda de sus conocimientos,esta vez es algo sencillo pero estoy un poco trancado el ...
  #1 (permalink)  
Antiguo 07/11/2019, 17:01
 
Fecha de Ingreso: junio-2013
Mensajes: 94
Antigüedad: 10 años, 10 meses
Puntos: 0
Pregunta consulta mysql

Buenas amigos del foro como están?

Vuelvo una vez mas necesitar ayuda de sus conocimientos,esta vez es algo sencillo pero estoy un poco trancado el tema es que necesito consultar varias tablas en mysql para luego escribirlos dentro de un archivo con php, pero la consulta se me ha dificultado son varias tablas.

es para utilizarlo en un curso y básicamente es sobre unos párrafos guardados en campos de una tabla y múltiples preguntas y respuestas sobre ese párrafo cada uno tiene como 5 o 6 preguntas y respuestas una correcta y las demás incorrectas

pongo las consultas aquí para que me orienten de como unirlas y la información que se imprima sea la relacionada con cada una, si es posible esto si no entonces me lo indiquen para desistir:

Código PHP:

//consulta 1
SELECT e.enunciado FROM enunciados e where id_enunciado=1

//consulta 2
SELECT e.preguntas FROM preguntas e where e.id_enunciado=1

//consulta 3
SELECT respuesta FROM respuestas where id_pregunta=1

//consulta 4
SELECT retroalimentacion FROM retroalimentacion where id_pregunta=

consulta 1 se trae un párrafo que esta en un campo de tabla ,
consulta 2 se trae las preguntas de sobre ese párrafo son 5 a veces 6,
consulta 3 se trae las respuestas a esas preguntas de estas una es correcta y las demás no, son 4 a veces 5 respuestas,
consulta 4 se trae la retroalimentacion sobre esa pregunta esta debe imprimirse al lado de cada respuesta


la idea que en una sola consulta me traiga toda la información del enunciado con el id _enunciado que se coloque.



muchísimas gracias por su atención y por su ayuda y sus sabios comentarios de antemano gracias
  #2 (permalink)  
Antiguo 08/11/2019, 06:58
 
Fecha de Ingreso: abril-2011
Mensajes: 170
Antigüedad: 13 años
Puntos: 68
Respuesta: consulta mysql

"Toda la información del enunciado" no queda muy claro. ¿Puedes explicar como quedaría el resultado?

Enunciado1 Pregunta1 Respuesta1 retroalimentacion
Enunciado1 Pregunta1 Respuesta2 retroalimentacion
Enunciado1 Pregunta1 Respuesta3 retroalimentacion
Enunciado1 Pregunta2 Respuesta1 retroalimentacion
Enunciado1 Pregunta2 Respuesta2 retroalimentacion
Enunciado1 Pregunta2 Respuesta3 retroalimentacion
....



¿Así?
  #3 (permalink)  
Antiguo 09/11/2019, 18:47
 
Fecha de Ingreso: junio-2013
Mensajes: 94
Antigüedad: 10 años, 10 meses
Puntos: 0
Pregunta Respuesta: consulta mysql

Cita:
Iniciado por prueba230683 Ver Mensaje
"Toda la información del enunciado" no queda muy claro. ¿Puedes explicar como quedaría el resultado?

Enunciado1 Pregunta1 Respuesta1 retroalimentacion
Enunciado1 Pregunta1 Respuesta2 retroalimentacion
Enunciado1 Pregunta1 Respuesta3 retroalimentacion
Enunciado1 Pregunta2 Respuesta1 retroalimentacion
Enunciado1 Pregunta2 Respuesta2 retroalimentacion
Enunciado1 Pregunta2 Respuesta3 retroalimentacion
....



¿Así?
hola prueba230683 gracias por responder

y puedo un ejemplo seria

Enunciado1
Pregunta1
Respuesta1
retroalimentacion
Respuesta2
retroalimentacion
Respuesta3
retroalimentacion

Pregunta2
Respuesta1
retroalimentacion
Respuesta2
retroalimentacion
Respuesta3
retroalimentacion

Pregunta4
Respuesta1
retroalimentacion
Respuesta2
retroalimentacion
Respuesta3
retroalimentacion


asi con cada enunciado la consulta ordenada con la informacion de cada enunciado

saludos
  #4 (permalink)  
Antiguo 09/11/2019, 20:12
 
Fecha de Ingreso: abril-2011
Mensajes: 170
Antigüedad: 13 años
Puntos: 68
Respuesta: consulta mysql

Tendrías que hacer un INNER JOIN con cada una de esas tablas (enunciados, preguntas, respuestas, etc.)

Pero antes tienes que tener claro cuáles son las llaves foráneas y cuáles las primarias de cada una de las tablas. Por ejemplo, la clave primaria id_enunciado de la tabla enunciados se correspondería con la clave foránea id_enunciado de la tabla preguntas y así sucesivamente con todas las tablas.

Sería algo así:
Código SQL:
Ver original
  1. SELECT enunciado, pregunta, respuesta, retroalimentacion FROM enunciados e, preguntas p, respuestas r, retroalimentaciones re WHERE e.id_enunciado = p.id_enunciado AND p.id_pregunta = r.id_pregunta AND r.id_respuesta = re.id_respuesta;

Última edición por prueba230683; 09/11/2019 a las 20:54
  #5 (permalink)  
Antiguo 09/11/2019, 21:27
 
Fecha de Ingreso: junio-2013
Mensajes: 94
Antigüedad: 10 años, 10 meses
Puntos: 0
Pregunta Respuesta: consulta mysql

Cita:
Iniciado por prueba230683 Ver Mensaje
Tendrías que hacer un INNER JOIN con cada una de esas tablas (enunciados, preguntas, respuestas, etc.)

Pero antes tienes que tener claro cuáles son las llaves foráneas y cuáles las primarias de cada una de las tablas. Por ejemplo, la clave primaria id_enunciado de la tabla enunciados se correspondería con la clave foránea id_enunciado de la tabla preguntas y así sucesivamente con todas las tablas.

Sería algo así:
Código SQL:
Ver original
  1. SELECT enunciado, pregunta, respuesta, retroalimentacion FROM enunciados e, preguntas p, respuestas r, retroalimentaciones re WHERE e.id_enunciado = p.id_enunciado AND p.id_pregunta = r.id_pregunta AND r.id_respuesta = re.id_respuesta;
exacto amigo eso mismo es lo que necesito, pero tengo muy pocos conocimientos para utilizar el inner join soy muy basico en base de datos pero esa consulta simple que colocaste yo la intente y si me trae la informacion el detalle es que no se como hacer para mostrarla que este de forma ordenada el enunciado y sus preguntas y respuestas y con php no se me ocurre como imprimirla de esta manera tampoco, necesito un ejemplo o una funcion con documentacion en si es lo que busco ya.
  #6 (permalink)  
Antiguo 09/11/2019, 22:08
 
Fecha de Ingreso: abril-2011
Mensajes: 170
Antigüedad: 13 años
Puntos: 68
Respuesta: consulta mysql

Creas un bucle que recorra cada uno de los enunciados de la bd. Dentro de ese bucle pones otro bucle que saque todas las preguntas para ese enunciado, dentro de ese bucle metes otro bucle que saque las respuestas para esa pregunta, y dentro de ese bucle metes otro bucle que saque las retroalimentaciones para esa pregunta. De esta forma vas a poder imprimir los datos en el orden que quieres.

Última edición por prueba230683; 09/11/2019 a las 22:19
  #7 (permalink)  
Antiguo 10/11/2019, 16:00
 
Fecha de Ingreso: junio-2013
Mensajes: 94
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: consulta mysql

Cita:
Iniciado por prueba230683 Ver Mensaje
Creas un bucle que recorra cada uno de los enunciados de la bd. Dentro de ese bucle pones otro bucle que saque todas las preguntas para ese enunciado, dentro de ese bucle metes otro bucle que saque las respuestas para esa pregunta, y dentro de ese bucle metes otro bucle que saque las retroalimentaciones para esa pregunta. De esta forma vas a poder imprimir los datos en el orden que quieres.
listo aplique lo que dijiste y se imprime tal cual, era un problema facil y yo me complicaba por demas.

muchisimas gracias por tu ayuda y tu tiempo amigo

Etiquetas: mysql, sql-sentencia
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 04:15.