Запрос к таблицам с соотношением Один-Ко-Многим (Postgresql)

Рейтинг: 0Ответов: 0Опубликовано: 15.08.2023

Использую БД Postgresql. Есть таблица request1 (ЗАПРОСЫ), и таблица user1 (ЮЗЕРЫ). Соотношение Один-Ко-Многим, т.е. с одним запросом может быть связано несколько юзеров.

Привожу пример запроса из таблицы:

id active sourceid ...
REQUEST-204 true 1234 ...

И связанных с этим запросом юзеров из второй таблицы:

request_id status_call department email ...
REQUEST-204 0 ОЭРМ user123@test.ru ...
REQUEST-204 1 СА admin@test.ru ...

Далее, прежде чем записывать новые данные, я хочу проверить, что таких данных в базе ещё нет, чтобы не было дубликатов. По условию дубликаты я ищу по значениям полей sourceid (источник запроса), и email (емаилы юзеров уникальные). Причём мне надо проверить именно 2 емаила, так как эти 2 пользователя с разными ролями. То есть если у меня уже есть запись в базе с указанным источником, с которой связаны 2 указанных юзера, то новые записи я создавать не буду.

Для проверки я написал такой запрос:

SELECT COUNT(id)
FROM request1 R

LEFT JOIN user1 U
  ON R.id = U.request_id

WHERE sourceid = '1234'
  AND email = 'user123@test.ru'

И получаю такой результат:

count
-----
    1

Но проблема в том, что я учитываю емаил только 1 юзера. Подскажите, как изменить запрос, чтобы учесть емаил обоих юзеров?

Ответы

Ответов пока нет.