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

consulta sql con where "jerarquico"

Estas en el tema de consulta sql con where "jerarquico" en el foro de Bases de Datos General en Foros del Web. Una consulta sql me trae de cabeza, porque conceptulamente implica una especie de WHERE jerarquico, de forma que no me sirve ni el OR ni ...
  #1 (permalink)  
Antiguo 19/03/2010, 05:01
Avatar de mrgubu  
Fecha de Ingreso: febrero-2002
Ubicación: Granada
Mensajes: 431
Antigüedad: 22 años, 2 meses
Puntos: 2
consulta sql con where "jerarquico"

Una consulta sql me trae de cabeza, porque conceptulamente implica una especie de WHERE jerarquico, de forma que no me sirve ni el OR ni el AND.

Veréis, trato de hallar el registro anterior y siguiente a uno con una determinada id. En la tabla hay dos campos numericos que van a condicionar el orden, id (autoincremental), y prioridad (el 1 es el primero, el 2 el segundo....).

Así pues, tengo un registro obtenido de una consulta previa con una prioridad y una id, y a partir de ellos, quiero encontrar el SIGUIENTE registro que tenga una prioridad más alta Y SÓLO SI NO HAY NINGUNO, entonces el que tenga igual prioridad y id más baja.

También quiero encontrar el ANTERIOR REGISTRO, que será el que tenga una prioridad más baja PERO SI NO HAY NINGUNO entonces el que tenga igual proridad y id más alta

En principio no puedo utilizar OR, porque no me vale una opción u otra, ni puedo utilizar AND, porque no se trata de que cumpla las dos condiciones, sino que se trata de que cumpla la primera condición, Y SOLO SI NO SE CUMPLE, que cumpla la segunda. Intento utilizar GROUP BY sin éxito, tal que así:


SELECT items.id,items.titular FROM items WHERE (priori < ".$id.") OR (priori <= ".$priori." and id > ".$id.") GROUP BY priori ORDER BY priori, id DESC LIMIT 1

Pero no me va.

Agradezco de antemano vuestra ayuda.
  #2 (permalink)  
Antiguo 19/03/2010, 07:23
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: consulta sql con where "jerarquico"

No se si a base de subconsultas se podria conseguir... pero quizas es mejor que lances primero la consulta buscando la primera opcion y si no da resultado lanzas la que optiene la segunda....

intentaba darte ejemplos pero tu definición de que registros buscas no esta clara.


SIGUIENTE seria:

Priori > y Id > o Priori<= y Id> ???

ANTERIOR seria ???

Priori < y Id < o Priori>= y Id< ???



Quim
  #3 (permalink)  
Antiguo 19/03/2010, 12:28
Avatar de mrgubu  
Fecha de Ingreso: febrero-2002
Ubicación: Granada
Mensajes: 431
Antigüedad: 22 años, 2 meses
Puntos: 2
Respuesta: consulta sql con where "jerarquico"

gracias quimfv,
no me ha servido directamente tu propuesta pero ha sido de gran ayuda para reorientarme. Al final he pasado la busqueda sql a un array php y así lo he podido manejar mejor.

Etiquetas: sql
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 03:56.