Ver Mensaje Individual
  #1 (permalink)  
Antiguo 21/03/2010, 05:02
sencev
 
Fecha de Ingreso: septiembre-2007
Ubicación: Argentina
Mensajes: 29
Antigüedad: 16 años, 7 meses
Puntos: 0
Ultimos posts ordenados por categorias y fecha

Buenas, estoy tratando de hacer una query que me devuelva los ultimos 10 posts, de cada categoria, ordenados por categoria y fecha de creacion del post.

La idea es hacer un corte de control con el resultado, entonces el order es muy importante.
Lo que pretendo es que queden primeras las categorias con posts mas recientes, pero a su vez un limite de los ultimos 10 posts de la categoria. Ya que si hago un limit general, si en una categoria tengo 20 posts en el ultimo mes y en otra tengo 10 posts en un total de 4 meses, tambien quiero esos 10 posts.

La query basica seria
Código SQL:
Ver original
  1. SELECT Posts.id
  2.      , Categorias.id
  3.   FROM Categorias
  4.  INNER Posts
  5.     ON Posts.idCategorias = Categorias.id
  6. ORDER BY Posts.fecha DESC
  7.  LIMIT 10

Probe hacer algo como
Código SQL:
Ver original
  1. ORDER BY ( SELECT idCategorias FROM Posts ORDER BY fecha DESC LIMIT 1 )
  2.          , Posts.fecha DESC

Pero vi que no tenia sentido..

Una posible mala solucion seria hacer un union por cada categoria, pero estaria harcodeando la cantidad de categorias

Código SQL:
Ver original
  1. ( SELECT .. FROM posts, INNER JOIN categorias .. ORDER BY fecha DESC LIMIT 10 )
  2. UNION
  3. ( SELECT .. FROM posts, INNER JOIN categorias .. ORDER BY fecha DESC LIMIT 10 )
  4. ORDER BY [algo que ponga primero a las categorias con posts mas recientes
  5.  pero a su vez respete el orden por fecha de los posts]

El problema es que los selects deberian seleccionar solo de una categoria, y me parece que asi todos traerian los mismos posts

intente hacer algo de eso pero no obtuve resultados..

A simple vista parece sencillo, pero tiene sus vueltas..

agradesco su ayuda.

Saludos