У меня возникли трудности с некоторым SQL - и мне сложно описать это, поэтому, пожалуйста, несите меня. Я пытаюсь выбрать продукты, у которых есть х правильных функций. Чтобы упростить ситуацию, проблема, с которой я столкнулась, - это несколько таблиц. Соответствующая информация о моих таблицах:
products(**product_id**)
features(**feature_id, product_id**, value_id)
featurenames(**feature_id**, name)
featurevalues(**value_id**, value)
Я пытаюсь выбрать все продукты, которые, например, предназначены для секса: возраст мужчины: дети, с указанием возраста и пола в таблице featurenames, а мужчины и дети - значения в таблице характеристик. Это часть другого более крупного запроса, который получает все продукты по категориям, которые я не включил, поскольку это просто усложнит ситуацию. Благодарим вас за помощь.
Это так приятно, что вы присоединяетесь к нему дважды.
Select
P.Product_ID
From
Products P
Inner Join Features F1 On P.Product_ID = F1.Product_ID
Inner Join FeatureNames FN1 On F1.Feature_ID = FN1.Feature_ID And FN1.Name = 'sex'
Inner Join FeatureValues FV1 On F1.Value_ID = FV1.Value_ID And FV1.Value = 'male'
Inner Join Features F2 On P.Product_ID = F2.Product_ID
Inner Join FeatureNames FN2 On F2.Feature_ID = FN2.Feature_ID And FN1.Name = 'age'
Inner Join FeatureValues FV2 On F2.Value_ID = FV2.Value_ID And FV1.Value = 'children'