Ver Mensaje Individual
  #2  
Antiguo 05-07-2011
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Reputación: 24
ContraVeneno Va por buen camino
Código SQL [-]
SELECT I.*, T.*, Z.*, AI.* 
FROM informes I  
left outer join temainforme ON (informes.idtema = temainforme.idtema and T.idtemainf like '%lo que se ingreso%') 
left outer join zonainf ON (informes.idzona = zonainf.idzona and zonainf.idzonainf like '%lo que se ingreso%') 
left outer join autoresxinforme ON (informes.idinforme = autoresxinforme.idinforme) 
WHERE I.anio = 'anio que se ingreso'

Cita:
autoresxinforme.idinforme = (SELECT autoresxinforme.idinforme FROM autoresxinforme where autoresxinforme.idautor = autor.idautor)
Esto no tengo la más mínima idea de para que te serviría, no se que haga o para que sirva si el enlace de esta tabla ya lo estas haciendo arriba con el join.

Lo otro que no me gusta es poner * para traerte todos los campos, es mucho mejor que pongas los nombres de los campos y traer solamente los que necesites.

Ahora bien, esa consulta le está dando prioridad a los informes y al ser con "inner join" todos los datos deben coincidir en todas las tablas. Aquí es donde creo yo que no esta funcionando. intenta cambiar el inner join por un "left outer join" y explica un poco más sobre a que dato le vas a dar más prioridad. ¿a los autores o a los informes?
__________________

Responder Con Cita