PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Присъединете се към множество маси, като използвате distinct on

Както казах в коментарите:Това е точно същото като в Вътрешно присъединяване с помощта на различен on . Просто трябва да добавите друго присъединяване и друго ORDER BY група (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

Забележка :Не съм сигурен какво е emp_id колона в class_detail е за. Изглежда не е добре проектиран (това е и защото винаги е 1 във вашия пример.) Трябва да проверите дали наистина имате нужда от него.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да задам име на приложение в url на Postgresql JDBC?

  2. Как да конфигурирате PostgreSQL Sharding с ClusterControl

  3. Свързване на cakephp 2.0 с PostgreSQL

  4. Как да добавите персонализирана колона със стойност по подразбиране в sql заявка?

  5. 2 начина да получите размера на база данни в PostgreSQL