I det här fallet är det möjligt att använda distinct före join möjligen göra den mer presterande:
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
Lägg märke till hur du använder alias för tabellnamnen för att göra frågan tydligare. Också sedan in operatören är mycket händig. Det är inte nödvändigt att använda dubbla citattecken med dessa identifierare.