Добрый день!
SELECT
`value`,
`unit`,
`productIdArr`,
`idArr`,
`param_src_id`,
GROUP_CONCAT(t1.realValuesArr2) AS realValuesArr FROM (SELECT
`value_src`.`value` AS `value`,
`value_src`.`unit` AS `unit`,
`value_src`.`param_src_id` AS `param_src_id`,
GROUP_CONCAT(`value_src`.product_id separator ',') AS `productIdArr`,
GROUP_CONCAT( `value_src`.id separator ',') AS `idArr`,
GROUP_CONCAT(DISTINCT JSON_OBJECT(
'value', `value_dst`.value,
'param_dst_id', `value_dst`.param_dst_id,
'type',param_type_id(`value_dst`.param_dst_id),
'ref_id',ref_id(`value_dst`.param_dst_id),
'title',param_title(`value_dst`.param_dst_id),
'valueDstidArr',r(CONCAT(`value_src`.id),`value_dst`.value)
)) AS `realValuesArr2`
FROM `value_src`
LEFT JOIN `value_dst`
ON `value_src`.id = `value_dst`.value_src_id
WHERE `value_src`.param_src_id = 104
GROUP BY `value_src`.unit,`value_src`.value, `value_src`.param_src_id, `value_dst`.value) t1
GROUP BY t1.value, t1.unit
В столюцу realValuesarr получется {"type": 4, "title": "Номин ток", "value": "9", "ref_id": 4, "param_dst_id": 85, "valueDstidArr": "670"},
{"type": 4, "title": "Номин ток", "value": "9", "ref_id": 4, "param_dst_id": 85, "valueDstidArr": "683"},
{"type": 4, "title": "Номин ток", "value": "9", "ref_id": 4, "param_dst_id": 85, "valueDstidArr": "696"},
{"type": 4, "title": "Номин ток", "value": "9", "ref_id": 4, "param_dst_id": 85, "valueDstidArr": "708"},
{"type": 4, "title": "Номин ток", "value": "9", "ref_id": 4, "param_dst_id": 85, "valueDstidArr": "720"},
{"type": 4, "title": "Номин ток", "value": "9", "ref_id": 4, "param_dst_id": 85, "valueDstidArr": "732"},
{"type": 4, "title": "Номин ток", "value": "9", "ref_id": 4, "param_dst_id": 85, "valueDstidArr": "744"},
{"type": 4, "title": "Номин ток", "value": "9", "ref_id": 4, "param_dst_id": 85, "valueDstidArr": "756"},
{"type": 4, "title": "Номин ток", "value": "9", "ref_id": 4, "param_dst_id": 85, "valueDstidArr": "769"},{"type...
Хочется чтобы valueDstidArr был числа через запятую, т.е. не много записей а одна,
Строчку 'valueDstidArr',r(CONCAT(`value_src`.id),`value_dst`.value) - concat заменить на group_concat не получается пишет что синтаксическая ошибка.
Возможно ли это или это проще в php написать алгоритм обработки?
Функция r
BEGIN
DECLARE arr text;
SELECT
GROUP_CONCAT(`value_dst`.id separator ',') into arr FROM `value_dst`
Where value_src_id in (Param1)
and `value_dst`.value = Param2;
RETURN arr;
END
таблица value_dst
таблица value_src