Ver Mensaje Individual
  #2 (permalink)  
Antiguo 18/02/2011, 03:17
quimfv
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Consulta multiTabla

Se me ocurre...

Código MySQL:
Ver original
  1. SELECT inmuebles.ID
  2. FORM inmuebles
  3. WHERE inmuebles.estado = 'activo'
  4.      AND inmuebles.ID
  5.          IN (SELECT DISTINCT inmuebles.ID
  6.                FORM inmuebles
  7.                INNER JOIN inmu_caract
  8.                ON inmu_caract.ID_inmueble = inmuebles.refe
  9.                WHERE inmu_caract.ID_caracteristica = '57' and inmu_caract.info >= 120)
  10.      AND inmuebles.ID
  11.          IN (SELECT DISTINCT inmuebles.ID
  12.                FORM inmuebles
  13.                INNER JOIN inmu_caract
  14.                ON inmu_caract.ID_inmueble = inmuebles.refe
  15.                WHERE inmu_caract.ID_caracteristica = '60' and inmu_caract.info = 'si')
  16.      AND inmuebles.ID
  17.         IN (SELECT DISTINCT inmuebles.ID
  18.               FORM inmuebles
  19.               INNER JOIN inmu_caract
  20.               ON inmu_caract.ID_inmueble = inmuebles.refe
  21.               WHERE inmu_caract.ID_caracteristica = '8' and inmu_caract.info >= 3)

Si?

Tantas caracteristicas distintas tienen los edificios para justificar una relación 1:n? Quizas si que es mas eficiente de cara a reducir espacio en disco pero... el rendimiento de la solucion que te he dado no se... se puede mejorar agregando indices... pero tambien usan espacio de disco....

Una estructura tipo

ID_inmueble | m2 | ascensor | habitaciones | .... | nombreCaracteristicaN

si n no es muy grande podria servir no....?
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 18/02/2011 a las 03:31