PostgreSQL
का उपयोग करें एक्सटेंशन DISTINCT ON
:
SELECT DISTINCT ON (documents.id) *
FROM document
JOIN updates
ON updates.document_id = document_id
ORDER BY
documents.id, updates.date DESC
यह प्रत्येक document.id
. से पहली पंक्ति लेगा ORDER BY
. में क्लस्टर आदेश।
जांच के लिए स्क्रिप्ट का परीक्षण करें:
SELECT DISTINCT ON (documents.id) *
FROM (
VALUES
(1, 'Test Title'),
(2, 'Test Title 2')
) documents (id, title)
JOIN (
VALUES
(1, 1, '2006-01-01'::DATE),
(2, 1, '2007-01-01'::DATE),
(3, 1, '2008-01-01'::DATE),
(4, 2, '2009-01-01'::DATE),
(5, 2, '2010-01-01'::DATE)
) updates (id, document_id, date)
ON updates.document_id = documents.id
ORDER BY
documents.id, updates.date DESC