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 originalDECLARE @phpbb_topics TABLE (foro_id INT, post VARCHAR(10))
INSERT INTO @phpbb_topics VALUES (2, 'Post 1')
INSERT INTO @phpbb_topics VALUES (2, 'Post 2')
INSERT INTO @phpbb_topics VALUES (2, 'Post 3')
INSERT INTO @phpbb_topics VALUES (2, 'Post 4')
INSERT INTO @phpbb_topics VALUES (5, 'Post 1')
INSERT INTO @phpbb_topics VALUES (5, 'Post 2')
INSERT INTO @phpbb_topics VALUES (5, 'Post 3')
INSERT INTO @phpbb_topics VALUES (5, 'Post 4')
INSERT INTO @phpbb_topics VALUES (7, 'Post 1')
INSERT INTO @phpbb_topics VALUES (7, 'Post 2')
INSERT INTO @phpbb_topics VALUES (7, 'Post 3')
INSERT INTO @phpbb_topics VALUES (7, 'Post 4')
SELECT * FROM (
SELECT T1.*, ROW_NUMBER() OVER (partition BY foro_id ORDER BY foro_id, post) posicion FROM @phpbb_topics T1
) 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.