Есть значит у меня SELECT довольно нагруженный. Хотелось бы его облегчить, хотя бы убрав подзапросы. Над чем я больше всего ломаю голову, так это подзапросы в BETWEEN. Сейчас часть с BETWEEN выглядит так:
...
SELECT * FROM Visitors v
WHERE v.last_visit_time BETWEEN
(SELECT start_time FROM Event WHERE event_id = @first_event) AND
(SELECT start_time FROM Event WHERE event_id = @second_event) AND
...
То есть, в данном случае, меня интересуют все посетители, которые последний раз посещали нас между двумя определёнными событиями. Есть ли способ избавиться от этих подзапросов? Без них работает на порядок быстрее, но хочется всё-таки делать всё за один раз.
И, как бонус, как можно отсюда убрать подзапрос:
...
AND g.place_id IN (SELECT place_id FROM Event WHERE event_id = @first_event)
...
Все предоставленные запросы являются клонами настоящих. Ни одна корпорация не пострадала от утечки данных при задавании этого вопроса.