Ver Mensaje Individual
  #1 (permalink)  
Antiguo 29/08/2011, 11:30
joebar1
 
Fecha de Ingreso: agosto-2011
Mensajes: 1
Antigüedad: 13 años, 2 meses
Puntos: 0
Exclamación Select con JOIN e IF anidados, condiciones en WHERE

Hola, llevo 2 días intentando mejorar el rendimiento de una consulta.... a ver si me podéis ayudar!!

La idea es con los datos de un piso, compararlos con una búsqueda establecida a ver si coinciden... lo he hecho con 2 Select, pero es muy lento porque tiene que ver en cada uno de los campos si existe y cumple con parámetros de búsqueda. Esto está en ASP.

Ej:
Código:
<%
sql5 = "select  * from proyecta_piso WHERE cod_piso='77' "

if provincia_consulta > 0 then
			sql5 = sql5 & " and provincia='"&provincia_consulta&"'"
end if
'
%>
El primer select me da los campos como provincia_consulta y si existe lo compara.

Ya sé que lo podría hacer más fácil, pero es que hay campos texto que contienen varios valores numéricos separados por comas Ej,(122,26,99,88) y estos no los puedo comparar, tengo que descomponerlos y compararlos 1 a 1.


Me gustaría saber como hago esto sin pasar por las 2 consultas y el asp porque es muy lento, mi entento es un LEFT JOIN, pero luego en la claúsula WHERE no puedo comparar los datos en ASP al no haberlos sacado a variable aún y he probado con 'AND select if (proyecta_consulta.altura>0, proyecta_piso.altura >= proyecta_consulta.altura,1=1)', el 1=1 es para que siga la consulta porque tengo que escribir el AND para que me coje el select.
Me vá.... pero no sé como hacerlo para descomponer los valores separados por comas Ej,(122,26,99,88) directamente en la secuencia mysql y compararlos.

Estoy desesperado... alguién con experiencia me dice que hago mal.......

Ej.
Código:
sql4 = "select  * from proyecta_consulta  LEFT JOIN proyecta_piso on proyecta_consulta.rel_categoria=proyecta_piso.rel_categoria WHERE proyecta_piso.cod_inmu='777' 
AND (select if (proyecta_consulta.altura>0,proyecta_piso.altura >= proyecta_consulta.altura,1=1))"