Ver Mensaje Individual
  #5 (permalink)  
Antiguo 17/09/2012, 04:21
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: 17 años, 4 meses
Puntos: 2658
Respuesta: Select para 3 tablas.

Cita:
Compañero me he complicado mas con una cuarta tabla llamada avisos, me duplica resultados y tarda mucho lo que busca :
Un INNER JOIN no puede duplicar resultados, a menos que los datos básicos estén duplicados.
Si el campo usuario.nu_ usuario es PK, entonces no existe duplicidad de datos. Pero si la tabla dir_usuario representa el domicilio, y un usuario puede declarar más de un domicilio, parte de los datos se repetirá entre registros. Eso no solo es evidente, sino que es correcto.
Por otro lado, si un usuario sólo debe tener una dirección, entonces no tiene sentido ponerla en una tabla separada.
Respecto a las duplicidades, para hablar de tales habría que verificar si el contenido completo de los registros relacionados se duplica. Que se repita una selección de datos (parcial), solo muestra que existe una relación 1:N entre las tablas, pero no implica que haya repeticiones exactamente, sino mas bien una incorrecta normalización de las tablas, porque si existen datos que se repiten entre registros relacionados con otra tabla, entonces o hay un error de ingreso de datos, o la tabla no está correctamente normalizada (subgrupos de datos repetitivos violan la 1FN).
Para darte una respuesta más concreta deberíamos ver datos resultantes de la consulta.

Finalmente, esto:
Código MySQL:
Ver original
  1. CONCAT( nombre, ' ', apellidos ) LIKE '%%'
  2.     AND telefono LIKE '%%'
  3.     AND poblacion LIKE '%%'
Yo no le encuentro ningún sentido...
¿Podrías explicar qué se supone que estás buscando en ese WHERE?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)