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

consulta multitabla

Estas en el tema de consulta multitabla en el foro de Mysql en Foros del Web. Hola: ¿Podríais indicarme dónde puedo encontrar información sobre las consultas multitabla? Lo que he encontrado es un poco confuso. Os comento, después de realizar un ...
  #1 (permalink)  
Antiguo 01/05/2012, 23:24
 
Fecha de Ingreso: octubre-2011
Mensajes: 160
Antigüedad: 13 años
Puntos: 2
Pregunta consulta multitabla

Hola:
¿Podríais indicarme dónde puedo encontrar información sobre las consultas multitabla? Lo que he encontrado es un poco confuso.
Os comento, después de realizar un logeo, el usuario va a una página de perfil donde se tienen que mostrar sus datos (sólo los de esta persona). Dichos datos están recogidos en 3 tablas,( aunque una de las tablas almacena sólo la ruta de las fotos, siendo, por tanto, esta tabla, un asunto más complicado,) sólo quiero saber para poder hacer las consultas de las otras 2 tablas, que proporcionan datos escritos, y poder mostrarlos en pantalla. Las tablas se llaman "usuarios" y "animal", por si me podéis poner algún tipo de ejmplo. Muchas gracias.
  #2 (permalink)  
Antiguo 02/05/2012, 01:43
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 8 meses
Puntos: 574
Respuesta: consulta multitabla

Manual

Si

tabla1
idTabla1
...

tabla2
idTabla2
...

tabla3
idTabla3
idTabla1
idTabla2
...

Luego

SELECT *
FROM (tabla1 INNER JOIN tabla3 ON tabla1.idTabla1=tabla3.idTabla1)
INNER JOIN tabla2 ON tabla2.idTabla2=tabla3.idTabla2;

Mostrará los registros relacionados de la tabla1 y 2 con una relacion n:m
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #3 (permalink)  
Antiguo 02/05/2012, 09:06
 
Fecha de Ingreso: octubre-2011
Mensajes: 160
Antigüedad: 13 años
Puntos: 2
Respuesta: consulta multitabla

En mi caso, tengo estas 3 tablas:
usuarios
idusuario; nombreamo; telefono; email; contrasenna; ciudad; provincia; pais; zona
animal
idusuario; usuario; raza; edad; sexo; capa; pedigri; especie
fotos
nombre_nuevo_con_carpeta; idusuario

Todas se relacionan entre sí por la "idusuario".
Para mostrar los datos, el Select ¿sería así?:
Cita:
SELECT *
FROM (usuarios INNER JOIN fotos ON usuarios.idusuario=fotos.idusuario)
INNER JOIN animalON animal.idusuario=fotos.idusuario;
  #4 (permalink)  
Antiguo 02/05/2012, 12:21
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 8 meses
Puntos: 574
Respuesta: consulta multitabla

Correcto siempre que TODOS los usuarios tengan fotos y animales asociados... si falta alguno cambia INNER por LEFT....

Una curiosidad tienes las fotos de los usuarios o de sus animales.... que tienes en el campo usuario de la tabla animal.... los animales no tienen identificador?... Otro dato a questionarte es la edad, no es estable va cambiando y si no tienes una fecha de referencia no sabras que edad tiene en cada momento...

usuarios
idusuario; nombreamo; telefono; email; contrasenna; ciudad; provincia; pais; zona
animal
idanimal;idusuario; raza; edad; sexo; capa; pedigri; especie
fotos
nombre_nuevo_con_carpeta; idAnimal

Asi si podrias mostrar las fotos de los animales asociadas a sus datos, de la otra forma solo la foto del usuario...
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #5 (permalink)  
Antiguo 04/05/2012, 13:18
 
Fecha de Ingreso: octubre-2011
Mensajes: 160
Antigüedad: 13 años
Puntos: 2
Respuesta: consulta multitabla

Gracias!!! Tendré en cuenta lo de la fecha, no lo había pensado, aunque ahora mismo, no tengo ni idea de cómo se hace, pero bueno, ya buscaré información... el campo usuario corresponde al nombre del animal, no hay problema con eso, tendré todos tus consejos en cuenta, de nuevo, mcuhas gracias!!!

Etiquetas: multitabla, 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 09:09.