2011-05-13 2 views
1

많은 콘텐츠와 다양한 콘텐츠가있는 콘텐츠 테이블이 있습니다. 열은 content varchar, document_id int (여러 버전 사이의 콘텐츠 식별) 및 버전 int입니다.콘텐츠 그룹의 최신 버전 가져 오기 SQL

각 콘텐츠 그룹의 최신 버전을 반환하고 싶습니다. 나는이 SQL을 사용하여 시도했지만 그것은 단지 첫 번째 버전을 반환하지만 내가 마지막으로 원하는. 주문에 의해 그룹과 작동하지 않습니다.

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

고유 한 콘텐츠 (고유 콘텐츠는 document_id로 식별 됨)의 최신 버전을 어떻게 얻을 수 있습니까? 사람이 도움을 줄 수

감사합니다 경우 나

+0

최신 콘텐츠 또는 최신 버전을 원하십니까? –

+0

@ lmre-l 가장 최신 버전의 콘텐츠를 원하지만 SQL이 제대로 작동하는 것 같습니다! 고맙습니다! – dextervip

답변

1
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

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

+1

그것은 최신 버전이 무엇인지 알려주지 만 가장 최근의 행을 가지고 있지 않습니다. – dextervip

0

난 당신이 document_id에 의해 "분류"되는 버전의 각 세트를 가정

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

뭔가를하려는 생각합니다.