Я пытаюсь выполнить запрос, который использует один попарный и один непарный подзапрос.Когда условием основного запроса является «и» (оба подзапроса должны совпадать), он возвращает ноль строк, где он должен возвращать две строки (проверено графически).Основной запрос, однако, работает, когда условие "или".Запрещен ли этот тип транзакций в SQL?
Я не могу дать фактический запрос, потому что он слишком длинный, благодаря именам столбцов и тому подобному, но этот пример представляет ситуацию -
select ...
from <tablename>
-- tuple (pairwise) comparison
where (columnA, columnB) in (select columnA, columnB
from <tablename>
where <some_condition_1>)
-- single column comparison
AND columnC in (select columnC
from <tablename>
where <some_condition_2>);
При выполнении этого запроса я не получаю никаких результатов (нет; пустая таблица), но когда я заменяю AND на OR, я получаю результат (хотя и не желаемый).Это не тот запрос, который я ДОЛЖЕН выполнить, но я пытаюсь понять, работает ли он на самом деле или нет.Возможно, однажды такой запрос может пригодиться мне или кому-то еще.
Я использую Oracle 11g XE.Однако, если решения для разных СУБД различны (например, Postgres или SQL Server), укажите их, если это возможно.Я тоже учу их.