PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

jak zapobiegać duplikatom za pomocą wewnętrznego zapytania sprzężenia (Postgres)

W takim przypadku możliwe jest zastosowanie distinct przed join prawdopodobnie zwiększając jego wydajność:

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

Zwróć uwagę, jak używać aliasów dla nazw tabel, aby zapytanie było bardziej przejrzyste. Również wtedy in operator jest bardzo poręczny. Używanie podwójnych cudzysłowów z tymi identyfikatorami nie jest konieczne.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Generowanie wielu wierszy z jednego wiersza na podstawie dat

  2. Różnica między typem danych DECIMAL i NUMERIC w PSQL

  3. Zapytanie według współrzędnych trwa zbyt długo - opcje do optymalizacji?

  4. czy postgres naprawdę zaktualizuje plik strony, gdy wszystkie pola są równe przed i po aktualizacji?

  5. Dlaczego sekwencje nie są aktualizowane, gdy COPY jest wykonywane w PostgreSQL?