У меня очень большая проблема в моем запросе SQL, и я не знаю, как ее решить.
Итак, у меня есть запрос:
SELECT * FROM table1 WHERE leftBorder <= 10 AND rightBorder >= 100
Все нормально.
Следующий шаг.
SELECT * FROM table1 WHERE
(leftBorder <= 10 AND rightBorder >= 100) OR (leftBorder <= 200 AND rightBorder >= 500)
Все нормально.
Но я бы хотел взять значения левой и правой границы из запроса, поэтому:
SELECT * FROM table1 WHERE
???
(SELECT leftBorder, rightBorder FROM table2 WHERE id in (1,2,3,4,5))
Мне нужно сделать несколько условий для запроса в запросе ... Возможно ли это?
У меня нет процедуры, просто запрос.
Я пытаюсь объяснить вам:
SELECT TOP 1 leftBorder, rightBorder FROM table2 WHERE id in (1,2,3,4,5)
это возвращает мне 1 строку с leftBorder и rightBorder, и я могу использовать это в запросе как:
SELECT * FROM table1 WHERE
table1.leftBorder <= table2.leftBorder AND table1.rightBorder >= table2.rightBorder
(SELECT TOP 1 leftBorder, rightBorder FROM table2 WHERE id in (1,2,3,4,5)) as table2
НО! Это работает только тогда, когда у меня есть 1 строка возврата из запроса. Но что мне делать, если у меня есть 10 строк в ответ и мне нужно сгенерировать запрос для 10 условий? Могу ли я сделать это в запросе?