Foros del Web » Programando para Internet » PHP »

Consultar 5 tablas, que metodo uso mejor

Estas en el tema de Consultar 5 tablas, que metodo uso mejor en el foro de PHP en Foros del Web. Buen día, basándome en los temas aqui presentados en este foro logre hacer una consulta de registros en dos tablas, pero a la hora de ...
  #1 (permalink)  
Antiguo 13/09/2016, 05:46
Avatar de davincci  
Fecha de Ingreso: enero-2005
Mensajes: 193
Antigüedad: 19 años, 3 meses
Puntos: 0
Pregunta Consultar 5 tablas, que metodo uso mejor

Buen día, basándome en los temas aqui presentados en este foro logre hacer una consulta de registros en dos tablas, pero a la hora de hacerlo en las 5 tablas que tengo me es imposible y no ne salen las cosas, entonces queria saber si hay un metodo mas eficiente que usar join inner para consultar las 5 tablas?

En la consulta a 2 tablas este es el código que me salio bien.

Código:
SELECT act.ANombres, act.PuntajeA1, act2.ANombres, act2.PuntajeA1
FROM actividad1 act Inner Join actividad2 act2 on act.AUsuario = act2.AUsuario

Pero para las 5 tablas no me sale nada, estas son las 5 tablas donde el campo AUsuario presente en todas es como la Id que esta presente en todos:

Actividad1

ANombres
AUsuario
PuntajeA1

Actividad2

ANombres
AUsuario
PuntajeA1

Actividad3

ANombres
AUsuario
PuntajeA1



Actividad4

ANombres
AUsuario
PuntajeA1


Actividad5

ANombres
AUsuario
PuntajeA1

La consulta que debo hacer es saber el PuntajeA1 de un usuario en cada una de las 5 actividades o tablas.


Gracias de antemano por la colaboración y explicación.
__________________
Mil gracias por sus enseñanzas.

Davincci
  #2 (permalink)  
Antiguo 13/09/2016, 06:05
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 13 años, 6 meses
Puntos: 123
Respuesta: Consultar 5 tablas, que metodo uso mejor

Pues con los join o union no deberías de tener problemas.

Pero deberías consultar mejor en el foro de base de datos.

Por otro lado por qué 5 tablas para almacenar lo mismo?

No sería más fácil una sola?

Tabla_actividades
id ( PK, identificador único de tabla )
id_actividad ( identificador de actividad )
id_usuario ( identificador de usuario )
puntuacion

Código SQL:
Ver original
  1. SELECT * FROM Tabla_actividades WHERE id_usuario=1
__________________
Unset($vida['malRollo']);
  #3 (permalink)  
Antiguo 13/09/2016, 06:14
Avatar de davincci  
Fecha de Ingreso: enero-2005
Mensajes: 193
Antigüedad: 19 años, 3 meses
Puntos: 0
Respuesta: Consultar 5 tablas, que metodo uso mejor

Hola gracias por tu respuesta, utilizo 5 tablas por que se debe poner una nota en cada actividad realizada, cada actividad es diferente, entonces debo tener la puntuacion de cada actividad aparte, a no ser que se pueda en una sola tabla ir almacenando activdad por actividad.


lo otro me funciona esta consulta que acabo de hacer

Código:
select *

from actividad1 A, actividad2 B, actividad3 C

where A.AUsuario = B.AUsuario and A.AUsuario = C.AUsuario
pero cuando en select lo remplazo para que me muestre los campos que estan en las tres tablas: ANombres, PuntajeA1 me vota error es decir cuando hago esto:

Código:
select ANombres, PuntajeA1

from actividad1 A, actividad2 B, actividad3 C

where A.AUsuario = B.AUsuario and A.AUsuario = C.AUsuario
no se que esta mal.
__________________
Mil gracias por sus enseñanzas.

Davincci
  #4 (permalink)  
Antiguo 13/09/2016, 06:34
Avatar de davincci  
Fecha de Ingreso: enero-2005
Mensajes: 193
Antigüedad: 19 años, 3 meses
Puntos: 0
Respuesta: Consultar 5 tablas, que metodo uso mejor

Solucionado una parte donde me muestra las 5 tablas

Código:
select * 

from actividad1 A, actividad2 B, actividad3 C, actividad4 D, actividad5 E

where A.AUsuario = B.AUsuario and A.AUsuario = C.AUsuario and A.AUsuario = D.AUsuario and A.AUsuario = E.AUsuario

Ahora no se como hacer que me acepte el select ANombres, PuntajeA1 que estan en todas las tablas.
__________________
Mil gracias por sus enseñanzas.

Davincci
  #5 (permalink)  
Antiguo 13/09/2016, 07:24
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 13 años, 6 meses
Puntos: 123
Respuesta: Consultar 5 tablas, que metodo uso mejor

Es posible en una, pero sin conocer realmente lo que pretendes creo que lo óptimo para normalizar la bd un poco, serian dos.

Una tabla para almacenar los tipos de actividades ( nombre, descripción, tipo, notas... ) y otra para las puntuaciones ( actividad, usuario, fecha, ... ) relacionada con la primera( 1:N ), de esta manera podrás tener una o 1M de actividades y sus puntuaciones sin problemas, siendo más fácil de mantener, al igual que tus consultas serán más simples y menos tediosas.

Mi recomendación, sin ninguna duda es que cambies tu estructura de tablas.
__________________
Unset($vida['malRollo']);

Etiquetas: consultar, metodo, registro, select, tabla, tablas
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 08:01.