Пересечение со списком в 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)
)