Ver Mensaje Individual
  #6 (permalink)  
Antiguo 26/09/2011, 14:41
pinchu
 
Fecha de Ingreso: septiembre-2009
Mensajes: 215
Antigüedad: 15 años, 3 meses
Puntos: 1
Respuesta: Problema con consulta (full outer join?)

Cita:
Iniciado por Ribon Ver Mensaje
Con tu modelo la solución que veo (y como te dije denante) es usando UNION de la siguiente manera, no te asustes es por tu modelo de datos jajajaja

Código MySQL:
Ver original
  1. SELECT campos
  2. FROM usuarios u
  3. INNER JOIN noticias n ON u.id_usuario = n.id_usuario
  4. INNER JOIN noticias_deporte nd ON n.id_noticia = nd.id_noticia
  5. WHERE u.id_usuario = 3
  6.  
  7.  
  8. SELECT campos
  9. FROM usuarios u
  10. INNER JOIN noticias n ON u.id_usuario = n.id_usuario
  11. INNER JOIN noticias_actividades na ON n.id_noticia = nd.id_noticia
  12. WHERE u.id_usuario = 3
  13.  
  14.  
  15. SELECT campos
  16. FROM usuarios u
  17. INNER JOIN noticias n ON u.id_usuario = n.id_usuario
  18. INNER JOIN noticias_foto nf ON n.id_noticia = nd.id_noticia
  19. WHERE u.id_usuario = 3

Te recomiendo en la tabla de noticias agregar un campo que identifique el tipo de noticia, por ejemplo que para noticias deporte el id sea 1, para actividades 2 y fotos 3

así la consulta te queda

Código MySQL:
Ver original
  1. SELECT campos
  2. FROM usuarios u
  3. INNER JOIN noticias n ON u.id_usuario = n.id_usuario
  4. u.id_usuario = 3 AND n.tipo_noticia IN (1,2,3);

Así después puedes agregar otros tipos de noticia.

Saludos.
Ya tengo un campo que identifica el tipo de noticia. El problema es que cada tipo de noticia tiene unos campos distintos, por lo tanto, si lo hago como dices tengo que coger primero todas las noticias y luego hacer otra consulta por cada noticia que muestro (para cargar datos de noticias_deportes,noticias_fotos ...etc)

Yo lo estoy intentando hacer así para coger toda la info que necesito con una consulta. ¿es más eficiente de la otra manera?