Ver Mensaje Individual
  #9 (permalink)  
Antiguo 30/09/2012, 19:58
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: Relacionar 3 tablas Mysql

Cita:
Iniciado por status02 Ver Mensaje
El unico resultado de la consulta q me dijiste arriba dice q se ejecuto con exito, luego SHOW CREATE TABLE imagenes y por ultimo me da el resultado de la tabla creada
CREATE TABLE `imagenes` (
`nombre_img` varchar(15) COLLATE utf8_spanish_ci NOT NULL,
`id_post` int(5) NOT NULL
)

Eso es lo unico que me muestra.
Es lo que quería comprobar, ya que muchas veces insisten en que una columna existe, o se llama así, y termina siendo que no es tal.
Ahora bien, en ese contexto, el problema se debe estar dando porque estás mezclando un JOIN implícito con un LEFT JOIN, lo que genera resultados totalmente incorrectos.
Cuando usas INNER/RIGHT/LEFT JOIN no puedes usar el implícito (la coma).
La sintaxis correcta para tu caso sería (usando alias):
Código MySQL:
Ver original
  1. SELECT P.*, C.*, I.*
  2. FROM post P
  3.     INNER JOIN categoria C ON P.id_cat = C.id_categoria
  4.     LEFT JOIN imagenes I ON P.id_post = I.id_post;

Como problema potencial encuentro que puede producirse una multiplicación de resultados porque estás estableciendo una relación en estrella, lo que no es una buena idea.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)