sql >> Base de Datos >  >> RDS >> PostgreSQL

cómo evitar duplicados con consulta de unión interna (Postgres)

En este caso es posible aplicar el distinct antes de join posiblemente haciéndolo más eficaz:

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

Observe cómo usar alias para los nombres de las tablas para que la consulta sea más clara. También entonces in El operador es muy útil. El uso de comillas dobles con esos identificadores no es necesario.