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

MySQL查询需求:按品牌分组聚合多附加ID与字段值

解决方案

要实现按brand_name分组,将对应品牌的多行variant_color_id、additional_id和additional_field_value聚合为单行展示,可使用MySQL的GROUP_CONCAT()聚合函数完成字段值的拼接。

修改后的SQL语句如下:

SELECT
    vehicle_brand.brand_name,
    GROUP_CONCAT(DISTINCT variant_color.id SEPARATOR ', ') AS variant_color_id,
    GROUP_CONCAT(DISTINCT additiona_field_line.additional_id SEPARATOR ', ') AS additional_id,
    GROUP_CONCAT(DISTINCT additiona_field_line.additional_field_value SEPARATOR ', ') AS additional_field_value
FROM `vehicle_price_mapper` AS vpm
LEFT JOIN vehicle_fuel_mapper AS vvm ON vvm.id = vpm.vehicle_fuel_mapper_id            
LEFT JOIN vehicle_model ON vehicle_model.id = vvm.v_model_id
LEFT JOIN vehicle_brand ON vehicle_brand.id = vehicle_model.brand_id
LEFT JOIN fuel_master ON fuel_master.id = vvm.fuel_id
LEFT JOIN variant_color ON variant_color.vpm_id = vpm.id
LEFT JOIN additiona_field_line ON additiona_field_line.variant_color_id = variant_color.id
WHERE vehicle_brand.brand_name IN ('BMW', 'Mahindra')
GROUP BY vehicle_brand.brand_name;

关键说明:

  • GROUP_CONCAT():将分组内指定字段的所有值拼接成单个字符串,默认用逗号分隔,也可通过SEPARATOR自定义分隔符(如; )。
  • DISTINCT:如果分组内存在重复字段值,添加该关键字可去重,避免重复内容拼接。
  • WHERE子句:通过IN筛选目标品牌,确保结果仅返回BMW和Mahindra两行数据。

注意事项:

MySQL默认限制GROUP_CONCAT拼接结果的长度为1024字符,若需拼接的内容较长,可通过调整会话参数扩大上限:

SET SESSION group_concat_max_len = 10000;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 15:50:40