2014-02-08 55 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