Пересечение со списком в SQL

Есть запрос, в WHERE которого приходится делать ещё один запрос. Нужно вернуть соответствие условию в том случае, если результат запроса пересекается со списком (“1", "2", "3"). Или не пересекается. Упрощённый запрос для примера:

SELECT table1_val1 FROM table1
WHERE 
(SELECT table2_val1 FROM table2 WHERE table2_val3=table1_val3) INTERSECT (“1", "2", "3")

Здесь очевидно неверное использование INTERSECT. Как это сделать корректно? Для варианта пересечения и не пересечения?


Ответы (1 шт):

Автор решения: Akina

Формально так:

SELECT table1.val1 FROM table1
WHERE EXISTS (
    SELECT NULL
    FROM table2 
    WHERE table2.val3=table1.val3
      AND table2.val1 IN (1, 2, 3)
    )
→ Ссылка