SQL选择多个列值

时间:2010-11-17 20:36:54

标签: mysql

我对某些SQL有困难 - 并且发现很难描述,所以请耐心等待。我正在尝试选择具有x个正确功能的产品。为了简化问题,我遇到的问题是有几张桌子。关于我的表的相关信息是:

products(**product_id**)
features(**feature_id, product_id**, value_id)
featurenames(**feature_id**, name)
featurevalues(**value_id**, value)

我正在尝试选择所有产品,例如性别:男性年龄:儿童,年龄和性别是功能名称表中的名称,男性和儿童是功能值表中的值。这是另一个更大的查询的一部分,它按类别获取所有产品,我没有包括它,因为它只会使事情变得复杂。感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

桌子很好,你加入它两次。

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'