2014-02-08 42 views
0

我需要得到的Prestashop 1.5產品的功能,但probleme是,我使用的是修改達讓我把多值一個特徵,每個產品的Prestashop:MySQL查詢有關產品功能

例如:

兼容的存儲卡: - 點菜備忘錄的xD - 記憶棒 - 記憶棒PRO - 多媒體卡(MMC) - 點菜安全數字(SD)

我得到這個查詢:

Select fl.name, fvl.value, f.id_feature 
From ps_feature_lang fl Left Join 
    ps_feature_product fp On fl.id_feature = fp.id_feature And fp.id_product = 291 
    Left Join 
    ps_feature_value_lang fvl On fp.id_feature_value = fvl.id_feature_value And 
    fvl.id_lang = 5 Left Join 
    ps_feature f On f.id_feature = fl.id_feature 
Where fl.id_feature In (Select ps__fc_categories_features.feature_id 
    From ps__fc_categories_features) 
Group By fl.name, fvl.value, f.id_feature, fl.id_feature 
Order By f.position 

,但如果沒有與給定產品不止一個值的功能,它會給多原糖該功能 最好的是一個查詢,將Concat的值對於具有pultiple值

每個要素

thanx in advence。

回答

0

您應該可以通過對您的查詢進行小調整來完成此操作。試試這個:

Select fl.name, group_concat(fvl.value) as values, f.id_feature 
From ps_feature_lang fl Left Join 
    ps_feature_product fp 
    On fl.id_feature = fp.id_feature And fp.id_product = 291 Left Join 
    ps_feature_value_lang fvl 
    On fp.id_feature_value = fvl.id_feature_value And fvl.id_lang = 5 Left Join 
    ps_feature f 
    On f.id_feature = fl.id_feature 
Where fl.id_feature In (Select ps__fc_categories_features.feature_id 
         From ps__fc_categories_features 
         ) 
Group By fl.name, fl.id_feature 
Order By f.position; 

該查詢將從group by刪除fvl.value並添加group_concat()select。我也刪除了f.id_feature。這似乎是基於join條件的冗餘。

+0

我在同一時間對同一個解決方案進行了一些研究,使得接近相同的修改(「group_concat」)。 儘管如此,非常感謝您的幫助,我希望這會幫助一些我知道他們很多有問題的人。 – user3287461