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

cách ngăn các bản sao bằng truy vấn nối bên trong (Postgres)

Trong trường hợp này, có thể áp dụng distinct trước join có thể làm cho nó hoạt động hiệu quả hơn:

select fb.* 
from
    formulation_batch fb
    inner join
    (
        select distinct formulationbatch_id
        from formulation_batch_component
        where component_id in (1, 2)
    ) fbc on fb.id = fbc.formulationbatch_id 
where fb.project_id = 1

Lưu ý cách sử dụng bí danh cho tên bảng để làm cho truy vấn rõ ràng hơn. Ngoài ra, sau đó in nhà điều hành rất tiện dụng. Việc sử dụng dấu ngoặc kép với những số nhận dạng đó là không cần thiết.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chèn NULL vào DB PostgreSQL qua PHP khi trường ngày trống

  2. Tương đương của từ kép trong PostgreSQL

  3. Truy vấn PostgreSQL chậm khi sử dụng NOT IN

  4. Toán tử không tồn tại:integer =integer [] trong một truy vấn với BẤT KỲ

  5. Đếm theo ngày sớm nhất được tìm thấy từ một liên kết bên trong?