PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

come prevenire i duplicati con la query inner join (Postgres)

In questo caso è possibile applicare il distinct prima del join possibilmente rendendolo più performante:

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

Nota come utilizzare l'alias per i nomi delle tabelle per rendere la query più chiara. Inoltre, in l'operatore è molto pratico. L'uso di virgolette doppie con tali identificatori non è necessario.