Выборка данных из двух таблиц, в одной данные из поля jsonb
Помогите пожалуйста объединить два запроса. Задача - вывести выборку со след условием - если специальность равна коду хотя бы в одном подслучае случая.
Исключение если - prvs is null
В первой таблице мы получаем значение поля idsl, которое во второй таблице ищем в поле id.
Вот что у меня вышло (два разных запроса, которые надо объединить)
Проверяем код в jsonb поле param1 (здесь проверяется под подслучаям)
select distinct idsl from bills.uch where med ->> 'PRVS' in ('9', '91')
По найденному в первой таблице idsl ищем во второй в поле id и выводим не повторяющийся id из второй таблицы
select distinct from bills.uch a join till.zsl z on a.idsl=z.id where a.idsl= 'результат поиска из первого запроса - med ->> 'PRVS' in ('9', '91'))
Ответы (1 шт):
Попробуй сначала выбрать idsl из таблицы bills.uch, где med ->> 'PRVS' соответствует '9' или '91'. Затем, используя эти idsl в качестве фильтра, соединить табличку bills.uch с till.zsl по полю id, чтобы получить итоговый набор уникальных id из таблицы till.zsl.
SELECT DISTINCT z.id
FROM bills.uch a
JOIN till.zsl z ON a.idsl = z.id
WHERE a.med ->> 'PRVS' IN ('9', '91')
AND a.idsl IN (
SELECT DISTINCT idsl
FROM bills.uch
WHERE med ->> 'PRVS' IN ('9', '91')
)