You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL GROUP_CONCAT(DISTINCT)分组查询propKey丢失问题咨询

问题解决方法

问题出在你对pp.id使用了DISTINCT关键字——虽然product_prop表中两条Color属性的记录name值相同,但id是完全独立的唯一值,不需要通过DISTINCT去重。你当前的写法中,不必要的DISTINCT干扰了聚合逻辑,导致部分id未被正确拼接。

修正后的SQL语句如下:

SELECT p.id, p.name AS propName,
       GROUP_CONCAT(DISTINCT pp.name SEPARATOR ',') AS propValue,
       GROUP_CONCAT(pp.id SEPARATOR ',') AS propKey -- 移除DISTINCT
FROM properties p 
INNER JOIN product_prop pp ON p.id = pp.prop
WHERE pp.product in (171243, 127865)
GROUP BY p.id, p.name; 

说明:

  • propValue保留DISTINCT是合理的,用于合并同一属性下的不同值,避免重复显示相同属性值。
  • propKey移除DISTINCT后,会将该属性对应的所有product_prop记录的id全部拼接,无论name是否重复。

执行修正后的语句后,Color对应的propKey会显示为2,5,符合预期。

内容的提问来源于stack exchange,提问作者KissGe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 02:10:34