Запрос к таблицам с соотношением Один-Ко-Многим (Postgresql)
Использую БД Postgresql. Есть таблица request1 (ЗАПРОСЫ), и таблица user1 (ЮЗЕРЫ). Соотношение Один-Ко-Многим, т.е. с одним запросом может быть связано несколько юзеров.
Привожу пример запроса из таблицы:
id | active | sourceid | ... |
---|---|---|---|
REQUEST-204 | true | 1234 | ... |
И связанных с этим запросом юзеров из второй таблицы:
request_id | status_call | department | ... | |
---|---|---|---|---|
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 юзера. Подскажите, как изменить запрос, чтобы учесть емаил обоих юзеров?