Получить последнюю версию контента группы SQL - PullRequest
1 голос
/ 14 мая 2011

У меня есть таблица содержимого, где у меня есть много содержимого и различные версии этого содержимого.Это столбцы content varchar, document_id int (идентифицирует контент между многими версиями) и версия int

Я хочу вернуть последнюю версию каждой группы контента.Я попытался использовать этот SQL, но он возвращает мне только первую версию, но я хочу последнюю. Порядок по не работает с группой по.

SELECT * FROM content where id_project = 8 group by document_id order by version desc;

Как я могу получить последнюю версию всего уникального контента(уникальный контент идентифицируется document_id)?

Спасибо, если кто-нибудь может мне помочь

Ответы [ 3 ]

1 голос
/ 14 мая 2011
SELECT c1.* FROM content c1
  left join content c2 on c1.document_id = c2.document_id and c1.version < c2.version
 where c2.document_id is null
   and c1.id_project = 8 
1 голос
/ 14 мая 2011

SELECT document_id,MAX(version) FROM content WHERE id_project = 8 GROUP BY document_id

0 голосов
/ 14 мая 2011

Я полагаю, вы хотите что-то вроде

SELECT *
FROM content A
WHERE version = (
    SELECT MAX(version)
    FROM content B
    WHERE B.document_id = A.document_id
)
AND document_id = 8

Предполагается, что каждый набор версий "сгруппирован" по document_id.

...