У меня есть таблица Сообщество . идентификатор в качестве первичного ключа
У меня есть другая таблица Community_check , которая содержит несколько записей определенного community_id . это выглядит так:
id lookup_check_type_id community_id active
1 111-222 1 true
2 123-123 1 true
3 111-222 1 false
4 123-123 2 false
checkTypeIdsIn = Array ['111-222', '123-123'];
SELECT
count(DISTINCT cchk.lookup_check_type_id) AS "allCheckTypesInCount"
FROM
community_check cchk
WHERE
cchk.community_id = C.id
AND cchk.tenant_id = c.tenant_id
AND cchk.lookup_check_type_id IN
(
SELECT
DISTINCT lchkt.id
FROM
lookup_check_type lchkt
WHERE
lchkt.id = cchk.lookup_check_type_id
AND lchkt.tenant_id = cchk.tenant_id
AND lchkt.id IN (${checkTypeIdsIn:csv})
)
GROUP BY cchk.community_id
HAVING
count(DISTINCT cchk.lookup_check_type_id) = array_length(${checkTypeIdsIn}, 1)
В приведенном выше запросе я получаю community_ids, у которых есть оба Lookup_check_type_ids , Теперь, в дополнение к вышеуказанному запросу,
Мне нужно найти
select * from community_check where lookup_check_type_id = '111-222' AND active = true.
И
select * from community_check where lookup_check_type_id = '123-123' AND active = true.
Оба вышеуказанных условия должны быть выполнены.