Ver Mensaje Individual
  #2 (permalink)  
Antiguo 27/07/2010, 18:32
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: Consulta en MYSQL

Este tipo de consultas no las logras usando la coma (,) en el FROM sino sólo con LEFT | INNER | RIGHT JOIN, que por otro lado es la mejor forma de jacer JOINs:
Recalco esto porque si bien es cierto que poner las relaciones enel WHERE resulta funcional (todos los manuales lo usan), el WHERE no puede ser optimizado en el parseo y el FROM si, por lo que siempre serán más eficientes las consultas con JOIN y no con comas.

Código MySQL:
Ver original
  1.   e.idEntidad,
  2.   e.entidad,
  3.   e.DesBreve,
  4.   e.detalles,
  5.   e.direccion,
  6.   e.telefono,
  7.   e.movil,
  8.   e.email,
  9.   e.webSite,
  10.   e.logo,
  11.   c.ciudad,
  12.   p.pais,
  13.   p.Codigo,
  14.   s.subCategoria,
  15.   z.categoria,
  16.   i.nombre,
  17.   i.tipo,
  18.   v.direccionV,
  19.   v.idEntidad
  20. FROM entidad e LEFT JOIN imagenes i ON e.idEntidad = i.idEntidad
  21.   LEFT JOIN ciudad c ON e.idCiudad = c.idCiudad
  22.   LEFT JOIN subcategoria s ON e.idSubCat = s.idSubCategoria
  23.   LEFT JOIN categoria z ON e.idCategoria = z.idCategoria
  24.   LEFT JOIN pais p ON e.idPais = p.Codigo
  25.   LEFT JOIN videos v ON e.idEntidad = v.idEntidad
  26. WHERE e.idEntidad = 1
  27. ORDER BY i.nombre;
LEFT JOIN devuelve registros basándose en la tabla a la izquierda (left) del JOIN, haya o no coincidencias con la tabla derecha. Por esta misma razón la posición de las tablas invocadas en el JOIN y la relación en su ON respectivo son importantes en este caso. Aquí no se cumple lo de "el orden de los factores no altera el producto", en este caso si lo altera.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)