Ver Mensaje Individual
  #9 (permalink)  
Antiguo 18/02/2014, 09:38
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: Imposible relacionar 2 veces con la misma tabla!!

Vovlamos al principio:
Cita:
Iniciado por Jinak Ver Mensaje
(...)
tengo 2 tablas con esta relacion:
Código:
Salto                             Archivo
=======                      ==============
id                                   id
titulo                              nombre
idarchivo1                     tipo
idarchivo2
idarchivo1 y idarchivo2 tiene relacion con el id de la tabla Archivo.

El problema es que no consigo hacer funcionar la siguiente consulta mas que para ver las primeras 2 columans, el resto de las columnas no muestran nada:

Código:
SELECT 
  t1.id, 
  t1.titulo, 
  t2.nombre as nom1, 
  t3.nombre as nom2, 
  t2.tipo as tipo1, 
  t3.tipo as tipo2
FROM 
  Salto t1, 
  Archivo t2, 
  (
    SELECT 
      nombre, 
      tipo 
    FROM 
      Archivo 
    WHERE 
      Salto.idarchivo2=id 
  ) t3 
WHERE 
  t1.idarchivo1=Archivo.id
(...)
Lo que yo te propuse es:
Código MySQL:
Ver original
  1.   S.id,
  2.   S.titulo,
  3.   A1.nombre nom1,
  4.   A2.nombre nom2,
  5.   A1.tipo tipo1,
  6.   A2.tipo tipo2
  7.   Salto S
  8.   INNER JOIN Archivo A1 ON S.idarchivo1 = A1.id
  9.   INNER JOIN Archivo A2 ON S.idarchivo2 = A2.id

Eso debería funcionar en tanto efectivamente haya registros en SALTO que se relacionasen con ARCHIVO por medio de los campos idarchivo1 e idarchivo2, al mismo tiempo
Si uno al menos no se relaciona la mismo tiempo, no saldrá.
En todo caso dinos qué devuelve esto:
Código MySQL:
Ver original
  1.   S.id,
  2.   S.titulo,
  3.   A1.nombre nom1,
  4.   A1.tipo tipo1
  5.   Salto S
  6.   INNER JOIN Archivo A1 ON S.idarchivo1 = A1.id
  7.   S.id,
  8.   S.titulo,
  9.   A2.nombre nom2,
  10.   A2.tipo tipo2
  11.   Salto S
  12.   INNER JOIN Archivo A2 ON S.idarchivo2 = A2.id
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)