Ver Mensaje Individual
  #2 (permalink)  
Antiguo 30/03/2010, 05:23
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: Ayuda con una sentencia SQL en mysql

Bien. Tu mismo te estás planteando la solución:

- Si CUTE_NEWS es la tabla cuyo registro siempre existe, y CUTE_STORY, siempre está relacionada en 1:1, esas dos se usan con INNER JOIN, no con LEFT o RIGHT, y en ese mismo orden:
Código MySQL:
Ver original
  1. SELECT n.id, n.fecha, s.noticia
  2. FORM cute_news n INNER JOIN cute_story s ON n.id = s.post_id;
Nota: Si la relación es mandatoria y la cardinalidad 1:1, es probable que ambas sean en realidad una sola tabla y la separación esté siendo artificial.

- Si CUTE_IMAGE es opcional, entonces va con LEFT JOIN, y sólo después de CUTE_NEWS:
Código MySQL:
Ver original
  1.     n.id,
  2.     n.fecha,
  3.     s.noticia,
  4.     IFNULL(i.nombre,'') nombre
  5. FORM cute_news n INNER JOIN cute_story s ON n.id = s.post_id
  6.     LEFT JOIN cute_image i ON n.id = s.id;
Esto debería funcionar, porque los registros de las dos primeras tablas retornarían si o si, mientras que la relación con los otros podría devolver NULL, para lo cual se pone la función IFNULL() a fin de evitar que aparezca ese no-valor.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)