Neste caso é possível aplicar o
distinct
antes do join
possivelmente tornando-o mais performático: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 como usar alias para os nomes das tabelas para tornar a consulta mais clara. Também então
in
operador é muito útil. O uso de aspas duplas com esses identificadores não é necessário.