使用分组选择不同的属性值

时间:2017-02-10 03:30:44

标签: mysql sql

我开发了一个在线商店,每个产品都有优惠和优惠。

我有这个表来存储商品和他们的属性及其价值之间的联系。

现在,我试图获取与产品相关的所有属性。 我已尝试使用此查询执行此操作

 int cutoff = originalText.substring(0,60).lastIndexOf(" ");
 String afterOptimized = originalText.substring(0, cutoff);

prints this:  "Bangladesh's first day of Test cricket on Indian soil has"

但是,正如您在下一个屏幕截图中看到的那样,它会复制值(因为其中一些值可能与两个商品相同) enter image description here

所以,我的问题是:如何只为每个属性选择不同的值?

1 个答案:

答案 0 :(得分:1)

我认为最简单的解决方案是group_concat(distinct)

SELECT `pp`.`product_id`, `pp`.`offer_id` , `pp`.`property_id`, 
        group_concat(distinct pp.property_value separator '^$^') as `values`, 
        group_concat(distinct pp.property_value_number separator '^$^')  as `number_values`
FROM `app_catalog_product_properties` AS `pp`
WHERE `product_id` = '41'
GROUP BY `pp`.`property_id`;