PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

SQL đã tham gia vào ngày cuối cùng

DISTINCT ON hoặc là bạn của bạn. Đây là một giải pháp với đúng cú pháp:

SELECT a.id, b.updated, b.col1, b.col2
FROM   table_a as a
LEFT   JOIN (
   SELECT DISTINCT ON (table_a_id)
          table_a_id, updated, col1, col2
   FROM   table_b
   ORDER  BY table_a_id, updated DESC
   ) b ON a.id = b.table_a_id;

Hoặc, để có được toàn bộ hàng từ table_b :

SELECT a.id, b.*
FROM   table_a as a
LEFT   JOIN (
   SELECT DISTINCT ON (table_a_id)
          *
   FROM   table_b
   ORDER  BY table_a_id, updated DESC
   ) b ON a.id = b.table_a_id;

Giải thích chi tiết cho kỹ thuật này cũng như các giải pháp thay thế cho câu hỏi có liên quan chặt chẽ này:
Chọn hàng đầu tiên trong mỗi GROUP BY nhóm?



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mối quan hệ chính đối ngoại trong mối quan hệ nhiều người

  2. Làm cách nào để lấy tên bảng trong hàm kích hoạt PostgreSQL?

  3. Làm thế nào để so sánh dữ liệu giữa hai cơ sở dữ liệu trong PostgreSQL?

  4. Làm thế nào để cập nhật bảng từ bảng liên kết?

  5. bộ chuyển đổi postgres rails có hỗ trợ ssl không?