Ver Mensaje Individual
  #13 (permalink)  
Antiguo 17/09/2009, 08:21
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: ORDER BY me duplica el resultado

Si la inserción de imágenes y de posts usan una PK autoincremental, y partieron de cero las dos, los ID de ambas tablas se deberían corresponder.
Pero si al menos uno de ambos falló al insertarse, los ID se corrieron, por lo que no sirven de referencia.
En estos casos lo que se debe hacer es poner un campo FK en una de las dos tablas; como la relación es 1:1, es indistinto cuál se usa de PK y cuál de FK, pero por una cuestión de lógica, el post es lo más importante, así que la FK debería provenir de la tabla de imagenes.
Lo que tendrías que haber hecho es insertar primero la imagen, recuperar el ID generado e insertarlo en un campo adicional de la tabla del post y luego recién guardar el post.

Ahora bien, como está en este momento, no podrás generar una consulta que te devuelva post e imagen, ya que la única otra opción sería hacer un GROUP BY contra el ID de la tabla de posts... pero como en el JOIN el primer registro combinado de la segunda tabla siempre sería el primero... entonces te devolvería cada post vinculado a la misma primera imagen de la otra tabla. ¿se entiende?

A como lo veo ahora, salvo que tengas algún otro campo para forzar una vinculación, lo único que te queda es levantar las tablas por separado y mostrar post e imagen vía código de la página.
El SQL no hace magia; si no hay forma de vincular en forma univoca ambas tablas, no hay modo de recuperar en una sola lo que quieres...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)