Ver Mensaje Individual
  #8 (permalink)  
Antiguo 19/01/2013, 17: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: Mostrar resultados mysql en 2 columnas distintas

Error de consulta:
Código MySQL:
Ver original
  1. FROM principal P
  2.     LEFT JOIN fotos F ON P.id = F.id_principal
  3. LIMIT <start>,<nrows>) fotos WHERE F.id_principal IS NOT NULL;
Porque en ese LEFT JOIN donde la segunda tabla es "F", sólo te devolvería aquellos registros de la principal donde no hubiese fotos relacionadas, lo que no cumple con lo deseado.
Además, esa sintaxis te daría un error porque el alias "fotos" de la subconsulta anula los alias internos de la misma.

Cita:
Entiendo que el OP está usando un mapeado de herencia en varias tablas, por lo que 1 id en principal, corresponde a una foto, o a un video.
Creo que no. Si te fijas está indicando que tiene dos tablas relacionadas con la cabecera (Principal), una para fotos y otra para videos.
Se requieren las tres tablas para responder esa consulta.

La última que le propongo le devolverá ambas cosas, o ningún dato en las columnas sino existen, haya lo que haya en las tablas secundarias.

Puede resultar poco claro porque la lógica de arquitectura de datos es diferente de la lógica de programación. Las cosas se piensan de otro modo (y no es broma).
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)