sql >> Databáze >  >> RDS >> PostgreSQL

PostgreSQL , Vyberte ze 2 tabulek, ale pouze nejnovější prvek z tabulky 2

Použijte PostgreSQL rozšíření DISTINCT ON :

SELECT  DISTINCT ON (documents.id) *
FROM    document
JOIN    updates
ON      updates.document_id = document_id
ORDER BY
        documents.id, updates.date DESC

Tím se vezme první řádek z každého document.id cluster v ORDER BY objednávka.

Testovací skript ke kontrole:

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


  1. co je java.io.EOFEException, Zpráva:Nelze přečíst odpověď ze serveru. Očekává se čtení 4 bajtů, čtení 0 bajtů

  2. Spouštěcí vs. kontrolní omezení

  3. Vložte binární velký objekt (BLOB) do PostgreSQL pomocí knihovny libpq ze vzdáleného počítače

  4. Nejlepší postupy zabezpečení PostgreSQL