Вопрос по запросу

Статус
В этой теме нельзя размещать новые ответы.

nejtr0n

Гуру форума
Регистрация
24 Янв 2014
Сообщения
129
Реакции
82
eid | aid | value
--------------------------------------+-----+-------
0bfc66e9-4c49-418c-8c3f-ac70d61017d4 | 1 | 2015
eca73e4d-d0bd-405f-9c22-2adcffd25465 | 2 | 110
0bfc66e9-4c49-418c-8c3f-ac70d61017d4 | 2 | 115

Товарищи, нужно выбрать eid записи у которых (aid=1 и value между 2010 и 2020) и (aid=2 и value между 110 и 120).
Собственно вопрос: без джоина тут никак не обойтись?
Просто таких фильтров будет очень много. Как это скажется на производительности?
 
select eid from `table` where aid=1 and value >= 2010 and value <= 2020
Думаю, как то так.
 
PHP:
SELECT eid FROM `table` WHERE (aid=1 AND value >= 2010 AND value <= 2020) OR (aid=2 AND value >= 110 AND value <= 120)
или так:
PHP:
SELECT eid FROM `table` WHERE aid=1 AND value >= 2010 AND value <= 2020
UNION
SELECT eid FROM `table` WHERE aid=2 AND value >= 110 AND value <= 120


PHP:
AND value >= 110 AND value <= 120
можно заменить на
PHP:
AND value BETWEEN 110 AND 120
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху