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

Es posible consultar tres tablas al mismo tiempo?

Estas en el tema de Es posible consultar tres tablas al mismo tiempo? en el foro de Mysql en Foros del Web. Hola Gente. Es posible consultar a tres tablas en un solo query? Tengo un ejemplo de una consulta a dos, me surge la duda si ...
  #1 (permalink)  
Antiguo 21/08/2013, 12:07
Avatar de fullmental  
Fecha de Ingreso: octubre-2004
Ubicación: México DF, Xochimilco
Mensajes: 593
Antigüedad: 20 años, 1 mes
Puntos: 3
Es posible consultar tres tablas al mismo tiempo?

Hola Gente.

Es posible consultar a tres tablas en un solo query?

Tengo un ejemplo de una consulta a dos, me surge la duda si es posible y en su caso si es recomendable?
Cita:
Editado: Codigo programación no permitido en foros de BBDD
Saludos.

Última edición por gnzsoloyo; 21/08/2013 a las 13:47 Razón: Codigo programación no permitido en foros de BBDD
  #2 (permalink)  
Antiguo 21/08/2013, 13:07
Avatar de Lautaro_eb  
Fecha de Ingreso: mayo-2010
Ubicación: Bariloche, Argentina
Mensajes: 284
Antigüedad: 14 años, 6 meses
Puntos: 24
Respuesta: Es posible consultar tres tablas al mismo tiempo?

Conque sentido ?
__________________
Mi emprendimiento: Software BRC
Youtube: Tutoriales de programación y electrónica.
  #3 (permalink)  
Antiguo 21/08/2013, 13:16
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 10 meses
Puntos: 447
Respuesta: Es posible consultar tres tablas al mismo tiempo?

Hola fullmental:

En primer lugar algunas observaciones: NO INCLUYAS CODIGO PHP ni de ningún otro lenguaje de programación, está absolutamente prohibido en este foro y si continuas con esta práctica te expones a que los moderadores borren o editen tu post y no se termine por entender, ojo con eso...

Segundo, puedes consultar todas las tablas que necesites en una sola consulta, no hay límite, pero debes tener cuidado de poner todas las relaciones entre tus tablas, de lo contrario te expones a que ocurra un producto cartesiano.

Tercero, aunque puedes numerar las tablas a utilizar utilizando FROM-WHERE, no es recomendable que lo hagas. En lugar de eso, utilizar JOIN's (INNER, LEFT O RIGTH según sea el caso), es decir, en decir.

En lugar de hacer esto:

Código:
...
FROM tabla1, tabla2, tabla3
WHERE
tabla1.campo = tabla2.campo and
tabla1.campo = tabla3.campo
...
Has esto:

Código:
...
FROM tabla1
INNER JOIN tabla2 ON tabla1.campo = tabla2.campo
INNER JOIN tabla3 ON tabla1.campo = tabla3.campo
...
Saludos
Leo.
  #4 (permalink)  
Antiguo 21/08/2013, 13:49
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Es posible consultar tres tablas al mismo tiempo?

Eso que habías posteado no contiene un código comprensible en este foro, y con todas las variables que habías puesto, es imposible saber si la consulta tiene algún sentido. Menos aún sin saber cómo es el esquema de la base.
Por favor, lee las normas del foro de BBDD.

Postea por lo menos una consulta SQL pura, y si es posible un esquema de la base para entender lo que quieres hacer.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 21/08/2013, 14:08
Avatar de fullmental  
Fecha de Ingreso: octubre-2004
Ubicación: México DF, Xochimilco
Mensajes: 593
Antigüedad: 20 años, 1 mes
Puntos: 3
Respuesta: Es posible consultar tres tablas al mismo tiempo?

Gracias Leonardo.

Una disculpa no sabia lo del código, tenia mucho tiempo sin entrar al foro.

Editare mi post para que sea comprensible.

respondiendo a la pregunta : ¿Con qué sentido ?

El objetivo es traer datos de diferentes tablas para determinar por ejemplo que usuarios contestaron bien las preguntas de la trivia núm. X, los datos del usuario y sus respuestas están en tablas distintas.
  #6 (permalink)  
Antiguo 21/08/2013, 14:15
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Es posible consultar tres tablas al mismo tiempo?

Perfecto, tal vez sea posible,pero necesitamos ver la estructura real de las tablas, y una consulta escrita con sólo SQL y sin variables de PHP o ningún otro lenguaje.
Incluso es posible que necesitemos aclararlo con algún ejemplo de datos reales.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 21/08/2013, 14:50
Avatar de fullmental  
Fecha de Ingreso: octubre-2004
Ubicación: México DF, Xochimilco
Mensajes: 593
Antigüedad: 20 años, 1 mes
Puntos: 3
Respuesta: Es posible consultar tres tablas al mismo tiempo?

Gnzsoloyo, leonardo_josue

Muchas gracias por su tiempo y paciencia.

pongo un ejemplo de las tablas:

Código:
--------------------
tabla_usuarios
---------------------
ID	Nombre	Correo	IDFacebook	etc. etc.
02	José	[email protected]	12345		XYZ
03	Miguel  [email protected]	23455		JMN


----------------------
tabla_respuestas
-----------------------
ID	userID	Trivia Num	Respuestas	recepción
01	02		01		ABC		fecha x
02	03		01		DEF		fecha x


----------------------
tabla_trivias
-----------------------
ID	PREGUNTA	RESPUESTAS_POSIBLES		RESPUESTA_CORRECTA
01	¿pregunta?	opA, opB, opC				opC
02	¿pregunta 2?	opN, opD, opa				opN

Quisiera poder armar una tabla con nombre y correo de los usuarios que contestaron bien la trivia 1 por ejemplo.

Me sirve muy bien el ejemplo de Leonardo, investigaré el uso de los JOINs (INNER, LEFT or RIGHT) para poder usarlos en este ejemplo.

Aqui va la consulta que menciono en el primer post (sin código)


Código:
SELECT tabla_usuarios.*,  tabla_respuestas.* 
FROM tabla_usuarios, tabla_respuestas 
WHERE tabla_respuestas.trivia_id = 1 
AND tabla_usuarios.user_FBid = tabla_respuestas.user_FBid  
ORDER BY tabla_respuestas.answer_reception ";
Obtengo lo almacenado en las tablas tabla_usuarios y tabla_respuestas de los usuarios que respondieron la trivia 1.

Ahora, lo que me falta saber es de esa tercera tabla tabla_trivias, quiénes contestaron bien.
  #8 (permalink)  
Antiguo 23/08/2013, 08:16
 
Fecha de Ingreso: febrero-2013
Ubicación: Lima
Mensajes: 301
Antigüedad: 11 años, 9 meses
Puntos: 5
Respuesta: Es posible consultar tres tablas al mismo tiempo?

mmmm....creo que la consulta seria algo como esta:
Código MySQL:
Ver original
  1. select a.*,b.*,c.*
  2. from tabla_usuarios a inner join tabla_respuestas b
  3. on a.id = b.id_user
  4. inner join tabla_trivias c
  5. on b.id = c.id
  6. and b.trivia_num = 1
  7. order by recepcion;

entre la tabla tabla_respuestas y la tabla_trivias, como no pude ver las relaciones opte por tomar el id de los mismos....espero te ayude....
__________________
Lo que no se....tampoco creo saberlo....
  #9 (permalink)  
Antiguo 26/08/2013, 17:47
Avatar de fullmental  
Fecha de Ingreso: octubre-2004
Ubicación: México DF, Xochimilco
Mensajes: 593
Antigüedad: 20 años, 1 mes
Puntos: 3
Respuesta: Es posible consultar tres tablas al mismo tiempo?

Gracias Ambichol.

Saludos.

Etiquetas: consultar, posible, select, tabla, tablas, tres
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 09:16.