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.