Ver Mensaje Individual
  #8 (permalink)  
Antiguo 13/07/2011, 16:14
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: Como se puede evitar sacar registros repetidos en consulta

Trata de analizar tu mismo los errores, así aprenderás mejor...
Algunas cosas son demasiado simples, como esta, donde el problema es que lo que había que eliminar era el alias invocado... algo que se volvía bastante evidente desde el momento en que "A" era el alias dentro de la subconsulta y no fuera de ella. Si te fijas, en el SELECT exterior, los campos se invocan con "T1", porque ése es el alias de la subconsulta, y lo que hice fue mover el GROUP BY fuera para evitar el error anterior, con lo que se generó el problema.

Código MySQL:
Ver original
  1. SELECT T1.*, COUNT(idGC) AS totAnuncios
  2.     (SELECT
  3.         A.idEstado,
  4.         P.nombre nombrePerfil,
  5.         A.idEstado,
  6.         C.nombre,
  7.         A.idAnuncio,
  8.         A.idCategoria,
  9.         A.titulo,
  10.         A.idCliente ,
  11.         GC.idGC
  12.     FROM
  13.         anuncios A
  14.         INNER JOIN
  15.         usuarioclientes UC ON (A.idCliente=UC.idCliente)
  16.         INNER JOIN
  17.         perfiles P ON (UC.idPerfil=perfiles.idPerfil)
  18.         INNER JOIN
  19.         categorias C ON (A.idCategoria=C.idCategoria)
  20.         LEFT OUTER JOIN
  21.         galeriasanuncios GA ON (A.idAnuncio=GA.idAnuncio)
  22.         LEFT OUTER JOIN
  23.         galeriaclientes GC ON (GA.idGaleriaCliente=GC.idGC)
  24.     WHERE
  25.         (A.idCategoria = 10)
  26.         AND
  27.         (A.idEstado = 3)
  28.         AND
  29.         (P.idPerfil =65)
  30.     ORDER BY RAND()) T1
  31.     idCliente

La cosa es que trates de revisar tu mismo. Es la mejor forma de aprender.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)