Ver Mensaje Individual
  #2 (permalink)  
Antiguo 11/07/2012, 07:24
Avatar de gnzsoloyo
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: como usar el join con mas de dos tablas

Por ejemplo:

Dos tablas:
Código MySQL:
Ver original
  1. SELECT T1.a, T1.b, T2.c, T2.d
  2.     T1
  3.     INNER JOIN T2 ON T1.a = T2.a;
Tres tablas:
Código MySQL:
Ver original
  1. SELECT T1.a, T1.b, T2.c, T2.d
  2.     T1
  3.     INNER JOIN T2 ON T1.a = T2.a
  4.     INNER JOIN T3 ON T2.e = T3.e;
Cuatro tablas:
Código MySQL:
Ver original
  1. SELECT T1.a, T1.b, T2.c, T2.d
  2.     T1
  3.     INNER JOIN T2 ON T1.a = T2.a
  4.     INNER JOIN T3 ON T2.e = T3.e
  5.     INNER JOIN T4 ON T3.f = T4.f;
¿Se entiende el concepto?
Detalle: Las tablas en realidad no necesariamente van como una cadena de tipo
T1 -> T2 -> T3...
sino que van vinculados los campos de acuerdo a las relaciones definidas en su diseño de tablas.
Buen podrían ser:
Código MySQL:
Ver original
  1. SELECT T1.a, T1.b, T2.c, T2.d
  2.     T1
  3.     INNER JOIN T2 ON T1.a = T2.a
  4.     INNER JOIN T3 ON T1.a = T3.e
  5.     INNER JOIN T4 ON T2.f = T4.f;
o cualquier otro requerido por el diseño de la base y la consulta.
Lo que debes tener en cuenta es que los INNER JOIN resulten lógicamente correctos. En ocasiones los resultados parecen estar mal, o tardar mucho tiempo, porque el orden de las tablas es incorrecto, o bien porque la relación produce productos cartesianos por estar mal planteada.
Sólo la experiencia te ayuda a saber cómo resolver esos problemas. No hay reglas absolutas.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)