Ver Mensaje Individual
  #2 (permalink)  
Antiguo 24/09/2011, 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: Condiciones en consultas mysql

Cita:
Los videos, fotos y lugares estan en tablas diferentes, es decir en 3 tablas. Con lo que me es imposible relacionar la consulta a una de las tablas, por que hay 3 y dependiendo el id de seccion tiene que relacionar con una o con otra.
Eso lo único que hace es obligarte a escribir una consulta algo más compleja, usando INNER JOIN, pero no mucho más que eso.
No te rindas, la cosa no es tan difícil de hacer...
La estructura básica sería:
Código MySQL:
Ver original
  1. SELECT c.*, f.*, v.*, s.*
  2. FROM comentarios c LEFT JOIN fotos f ON c.comentario_id = f.comentario_id
  3. LEFT JOIN videos v  ON c.comentario_id = v.comentario_id
  4. LEF JOIN lugares s ON c.comentario_id = s.comentario_id;
Donde c, f, v, y s son alias de las tablas.

Este tipo de consulta devovlerá NULL en aquellas columnas donde no haya datos relacionados, y resulta funcional si un comentario puede ir acompañado de más deu na cosa, es decir si tiene relacionados además de un video, un sitio, por ejemplo, o una foto.
El resto del proceso (la representación en pantalla) la debes manejar por programación.

Otra posibilidad es usar UNION, si y sólo si cada comentario sólo puede estar acompañado de uno de esos elementos, pero no de otros. Si existe al menos un caso donde haya más de un objeto de diferente clase relacionado con el mismo comentario, el UNION ya no es funcional.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 24/09/2011 a las 18:06