sql >> Database >  >> RDS >> PostgreSQL

Doe mee aan meerdere tafels met behulp van verschillende on

Zoals ik in de opmerkingen zei:het is precies hetzelfde als in Inner join met distinct on . Je hoeft alleen maar een nieuwe join toe te voegen en nog een ORDER BY groep (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

Opmerking :Ik weet niet zeker wat de emp_id kolom in class_detail is voor. Het lijkt niet goed ontworpen (dit komt ook omdat het altijd 1 is in jouw voorbeeld.) Je moet controleren of je het echt nodig hebt.




  1. Datetime datatype in MySQL maakt fout

  2. Een willekeurig getal genereren binnen een opgegeven bereik in SQLite

  3. UTC_TIMESTAMP() Voorbeelden – MySQL

  4. Waarom IS DISTINCT VAN - Postgres . gebruiken