Ver Mensaje Individual
  #36 (permalink)  
Antiguo 21/09/2012, 08:51
jurena
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 17 años
Puntos: 300
Respuesta: Select para 3 tablas.

Código MySQL:
Ver original
  1. U.nombre,  
  2. U.apellidos,  
  3. U.nu_usuario,  
  4. U.telefono,
  5.  FROM USUARIOS U
  6. WHERE CONCAT( nombre, ' ', apellidos ) LIKE '%{$vnombre}%' AND U.telefono LIKE '%{$vte}%';

Esto si buscas coincidencia de nombre y teléfono, pero ojo, en el foro PHP te enseñarán a controlar que si no se pasa la variable de nombre $vnombre, no se incluya esa parte de la consulta. Me refiero a esto: CONCAT( nombre, ' ', apellidos ) LIKE '%{$vnombre}%' AND

La siguiente consulta es si se incluye población. Eso obliga a hacer un INNER JOIN con la tabla de poblacion, pero ojo, seguimos exigiendo que se cumplan todos los valores de todos los parámetros pasados, y si buscas la poblacion de una persona que tenga dos direcciones en esa localidad, aparecerá dos veces esa persona, por lo que deberás decirnos qué querrías hacer con esos datos en ese momento.
Código MySQL:
Ver original
  1. U.nombre,  
  2. U.apellidos,  
  3. U.nu_usuario,  
  4.  U.telefono,
  5. D.poblacion
  6.  FROM usuarios U INNER JOIN dir_usuarios D
  7. ON U.num_usuario=D.num_usuario
  8. WHERE CONCAT( nombre, ' ', apellidos ) LIKE '%{$vnombre}%' AND U.telefono LIKE '%{$vte}%' AND poblacion LIKE '%{$vpoblacion}%'
  9. ;

Aquí es donde ya empezaría yo a preguntarme si debo usar índices fulltext sobre esos campos y que busquen sobre todos ellos. Pero por ahora dejaremos eso.

Última edición por jurena; 21/09/2012 a las 08:57