jak zapobiec duplikatom z zapytaniem o sprzężenie wewnętrzne (Postgres)

Próbuję zrozumieć, jak utworzyć zapytanie, aby odfiltrować niektóre wyniki oparte na złączeniu wewnętrznym.

Rozważ następujące dane:

formulation_batch
-----
id  project_id  name    
1   1           F1.1
2   1           F1.2
3   1           F1.3
4   1           F1.all

formulation_batch_component
-----
id  formulation_batch_id    component_id
1   1                       1
2   2                       2
3   3                       3
4   4                       1
5   4                       2
6   4                       3
7   4                       4

Chciałbym wybrać wszystkie rekordy preparacji z identyfikatorem project_id równym 1 i ma formułę composition_batch_component z komponentem id 1 lub 2. Uruchomię więc następujące zapytanie:

SELECT "formulation_batch".* 
FROM "formulation_batch" 
INNER JOIN "formulation_batch_component" 
ON "formulation_batch"."id" = "formulation_batch_component"."formulationBatch_id" 
WHERE "formulation_batch"."project_id" = 1 
    AND (("formulation_batch_component"."component_id" = 2 
        OR "formulation_batch_component"."component_id" = 1 ))

Zwraca to jednak zduplikowany wpis:

1;"F1.1"
2;"F1.2"
4;"F1.all"
4;"F1.all"

Czy istnieje sposób na zmodyfikowanie tego zapytania, aby odzyskać tylko unikatowe rekordy recepturowania zgodne z kryteriami?

NA PRZYKŁAD:

1;"F1.1"
2;"F1.2"
4;"F1.all"

Dziękuję za Twój czas!

questionAnswers(3)

yourAnswerToTheQuestion