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.