sql >> Database teknologi >  >> RDS >> PostgreSQL

Deltag på flere borde ved hjælp af distinkt på

Som jeg sagde i kommentarerne:Det er nøjagtig det samme som i Indre joinforbindelse ved hjælp af distinkt på . Du skal blot tilføje endnu en join og endnu en ORDER BY gruppe (cd.created_at DESC )

demo:db<>fiddle

SELECT DISTINCT ON (ed.emp_id)
    e.emp_id, e.emp_no, e.emp_ref_no, ed.class_no, cd.*
FROM 
    emp_detail ed
JOIN emp e ON e.emp_id = ed.emp_id
JOIN class_detail cd ON ed.class_no = cd.class_no
ORDER BY ed.emp_id, ed.created_at DESC, cd.created_at DESC

Bemærk :Jeg er ikke sikker på hvad emp_id er kolonne i class_detail er for. Det virker ikke godt designet (dette er også fordi det altid er 1 i dit eksempel.) Du bør tjekke, om du virkelig har brug for det.




  1. Hvordan sender jeg værdi til en lagret procedureparameter i OLE DB-kildekomponent?

  2. SQL Server GUID sorteringsalgoritme. Hvorfor?

  3. COSH() Funktion i Oracle

  4. Python MySQL ReferenceError:svagt refereret objekt eksisterer ikke længere