Ver Mensaje Individual
  #2 (permalink)  
Antiguo 08/08/2013, 11:02
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Como arreglo esta consulta para que funcione bn!!

Es un tema de lógica que se esconde detrás del método usado: para que el método que usas funcione no deben existir discontinuidades en los códigos de las fotos. De lo contrario, sólo te devolverá aquellos cuya diferencia por su valor absoluto sea más próxima.
En otras palabras, si los diez siguientes existen, pero se borraron los diez precedentes, entonces sólo te devolverá los diez mayores.
Para que te devuelva los anteriores y posteriores debes hacer la consulta con UNION segmentando las búsquedas:
Código MySQL:
Ver original
  1.     SELECT * FROM
  2.     (SELECT fo.nombre, fo.cod, us.nick
  3.     FROM usuario us
  4.         INNER JOIN fotos fo ON li.usuario = us.cod
  5.         INNER JOIN Libro li ON li.cod = fo.libro
  6.     WHERE li.cod =  '448'
  7.     AND fo.cod > 668
  8.     LIMIT 5) T1
  9.     UNION  
  10.     SELECT * FROM
  11.     (SELECT fo2.nombre, fo2.cod, us2.nick
  12.     FROM usuario us2
  13.         INNER JOIN fotos fo2 ON li2.usuario = us2.cod
  14.         INNER JOIN Libro li2 ON li2.cod = fo2.libro
  15.     WHERE li2.cod =  '448' AND fo2.cod <= 668
  16.     LIMIT 6)T2

Por cierto: No uses JOIN implícito. Usa el explícito. Tiene mejor performance.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)