PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

So verhindern Sie Duplikate mit Inner Join-Abfrage (Postgres)

In diesem Fall kann der distinct verwendet werden vor dem join möglicherweise leistungsfähiger machen:

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

Beachten Sie, wie Aliasnamen für die Tabellennamen verwendet werden, um die Abfrage klarer zu machen. Auch dann in Betreiber ist sehr praktisch. Die Verwendung von doppelten Anführungszeichen mit diesen Bezeichnern ist nicht erforderlich.