Я работаю с oracle db в устаревшем приложении и не могу придумать для него конкретный запрос.
В основном у меня есть одна таблица T_Selected с числовым столбцом (первичный ключ) и столбцом xmltype. XML имеет формат
<countries>
<country>England</country>
<country>Ireland</country>
<country>Scotland</country>
<country>Wales</country>
</countries>
У меня также есть другая таблица, которую мне нужно запросить и использовать результат
select country from T_Countries where language = 'English'
Мне нужно три запроса и их отрицания.
Все страны в подзапросе xml ∈
Подзапрос ∈ Все страны в xml
Все страны в xml = всем подзапросам
Самое близкое, что я получил, это
select id from
T_Selected ts,
XMLTABLE('/countries/country'
passing ts.Values
columns
Country path '//country'
) XML
where XML.country in (select country from T_Countries
where language ='English');
Это вернет идентификаторы, в которых любая из стран xml находится в подзапросе, а не все из них.
Любые идеи о том, как я могу это сделать?
Спасибо за помощь,
Найл