Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Select con JOIN e IF anidados, condiciones en WHERE

Estas en el tema de Select con JOIN e IF anidados, condiciones en WHERE en el foro de Mysql en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 29/08/2011, 11:30
 
Fecha de Ingreso: agosto-2011
Mensajes: 1
Antigüedad: 13 años, 3 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))"
  #2 (permalink)  
Antiguo 31/08/2011, 05:23
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 9 meses
Puntos: 574
Respuesta: Select con JOIN e IF anidados, condiciones en WHERE

Código MySQL:
Ver original
  1. select  *
  2. from proyecta_consulta  
  3. proyecta_piso
  4. on proyecta_consulta.rel_categoria=proyecta_piso.rel_categoria
  5. WHERE proyecta_piso.cod_piso='77'
  6. AND proyecta_piso.cod_inmu='777'
  7. AND proyecta_piso.provincia='&provincia_consulta&'
  8. AND (
  9.    (proyecta_consulta.altura>0 AND proyecta_piso.altura >= proyecta_consulta.altura)
  10.  OR (proyecta_consulta.altura=0)
  11.         )

Esto debería dar lo mismo...


Pero con "proyecta_piso.cod_inmu='777' " no estas seleccionando un solo piso el 777.... ???
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Etiquetas: anidados, campos, condiciones, ifs, join, select, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:27.