Ver Mensaje Individual
  #2 (permalink)  
Antiguo 09/03/2011, 11:09
leonardo_josue
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 4 meses
Puntos: 447
Respuesta: Ultimos 4 post de cada foro_id

Hola compañer@ cloner:

Me parece que estás copiando y pegando una misma pregunta en más de un foro verdad??? La sintaxis que estás utilizando corresponde a MySQL pues en SQL Server no existe el operador LIMIT, ojo con eso, si vas a preguntar en foros que no correspondan al manejador de BD que estás utilizando conviene que lo especifiques en el post. En SQL Server existe una función analítica llamada ROW_NUMBER() que puedes utilizar para hacer lo que necesitas, sería más o menos así:

Código SQL:
Ver original
  1. DECLARE @phpbb_topics TABLE (foro_id INT, post VARCHAR(10))
  2. INSERT INTO @phpbb_topics VALUES (2, 'Post 1')
  3. INSERT INTO @phpbb_topics VALUES (2, 'Post 2')
  4. INSERT INTO @phpbb_topics VALUES (2, 'Post 3')
  5. INSERT INTO @phpbb_topics VALUES (2, 'Post 4')
  6. INSERT INTO @phpbb_topics VALUES (5, 'Post 1')
  7. INSERT INTO @phpbb_topics VALUES (5, 'Post 2')
  8. INSERT INTO @phpbb_topics VALUES (5, 'Post 3')
  9. INSERT INTO @phpbb_topics VALUES (5, 'Post 4')
  10. INSERT INTO @phpbb_topics VALUES (7, 'Post 1')
  11. INSERT INTO @phpbb_topics VALUES (7, 'Post 2')
  12. INSERT INTO @phpbb_topics VALUES (7, 'Post 3')
  13. INSERT INTO @phpbb_topics VALUES (7, 'Post 4')
  14.  
  15. SELECT * FROM (
  16. SELECT T1.*, ROW_NUMBER() OVER (partition BY foro_id ORDER BY foro_id, post) posicion FROM @phpbb_topics T1
  17. ) T2 WHERE T2.posicion < 3

Es decir, tienes cuatro post para cada foro_id, pero el ejemplo sólo está recuperando dos de ellos, creo que sería más o menos lo que necesitas, pero lamentablemente MySQL no cuenta con esta funcionalidad. Puedes simular algo parecido al row_number, checa esta página, igual y te puede servir.

http://forums.mysql.com/read.php?32,...665#msg-225665

Saludos
Leo.