У меня проблема с извлечением данных из таблицы, где каждый элемент должен соответствовать требованиям фильтра из другой таблицы, где существуют отношения между product_id, feature_category_id и feature_option_id.SQL Получить все отфильтрованные элементы
Например. Ниже приведены примеры вставок из этой справочной таблицы:
id = 1
product_id = 10
feature_category_id = 100 - it's name of "feature category" eg. dimensions, weight etc.
feature_option_id = 1001 - it's product value of feature category eg. this product with id 10 have dimensions of 100x100 and it's id in another table is 1001 so it's that value.
Теперь мне нужно получить все продукты, соответствующие этим требованиям. Например. Я выбираю из формы поиска, давая мне все продукты с размерами 100x100 и весом 1 кг, поэтому запрос должен что-то сделать, чтобы проверить эти данные в таблице.
Я пробовал что-то, но он работает только в том случае, если есть 1 product.features.feature_category_id. Если где равно 2 или более, где кластеры этого типа содержат 0 возвращенных строк.
select distinct
"products".*, "product_categories.*"
from
"products"
inner join
"product_categories" on "products"."category_id" = "product_categories"."id"
left join
"product_features" on "products"."id" = "product_features"."product_id"
where
"products"."category_id" in (58) and
((product_features.feature_category_id = 1
and product_features.feature_option_id = 58)
and (product_features.feature_category_id = 46
and product_features.feature_option_id = 62))
Какая эта СУБД для этого? Добавьте тег, чтобы указать, используете ли вы 'mysql',' postgresql', 'sql-server',' oracle' или 'db2' - или что-то еще. –