как предотвратить дублирование с помощью внутреннего запроса на соединение (Postgres)

Я пытаюсь понять, как создать запрос, чтобы отфильтровать некоторые результаты на основе внутреннего объединения.

Рассмотрим следующие данные:

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

Я хотел бы выбрать все записи Formula_batch с идентификатором project_id, равным 1, и иметь параметр shape_batch_component с значением component_id, равным 1 или 2. Поэтому я запускаю следующий запрос:

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 ))

Тем не менее, это возвращает дубликат записи:

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

Есть ли способ изменить этот запрос так, чтобы я получал только уникальные записи form_batch, которые соответствуют критериям?

НАПРИМЕР:

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

Спасибо за ваше время!

Ответы на вопрос(3)

Ваш ответ на вопрос