Справочная информация: у клиента есть возможность создать собственный запас транспортных средств.Это означает, что он может отображать только автомобили, которые соответствуют его критериям.У него также есть возможность создавать веб-фильтры для пользователей.Эти фильтры могут синхронизироваться между ними.Например, если пользователь выбирает что-то из фильтра X, фильтр Y показывает только значения, соответствующие фильтру X
Проблема производительности заключается в заполнении фильтров внешнего интерфейса значениями.Я попробовал что-то вроде этого
;with v as(
select something from vehicles
where [his stock filters])
select 'XFilter',X_id from v where Y_id > [value] and Z_id > [value]
union
select 'YFilter',Y_id from v where X_id > [value] and Z_id > [value]
union
select 'ZFilter',Z_id from v where X_id > [value] and Y_id > [value]
union
...
В запрос будет добавлено несколько объединений, и добавление различных фильтров ко всем из них будет трудно проиндексировать, или, как я полагаю.Как мне поступить, чтобы получить лучшую производительность?Должен ли я получить данные другим способом?
РЕДАКТИРОВАТЬ: в таблице Транспортные средства есть столбцы, подобные следующим
ID ColorID FueltypeID Mileage ...
1 1 1 1000
2 1 2 500
3 2 2 2000
4 2 1 1500
5 3 1 9000
6 3 2 8000
Используя приведенный выше запрос, я хочу извлечь все различныезначения для фильтров, которые имеют ограниченный набор значений, таких как цвета и типы топлива.Ожидаемый результат будет
reference value
1 Color 1
2 Color 2
3 Color 3
4 Fueltype 1
5 Fueltype 2