MYSQL: объединить / объединить две записи из группы по результату - PullRequest
0 голосов
/ 20 июня 2019

Я пытаюсь создать список выбора товаров для заказов, поэтому в крупных системах заказов поставщик может легко подготовить свои заказы.

Три общие таблицы (orders, order_products, order_options).

вот мой запрос и результаты

SELECT op.order_id ,  op.name, op.product_id, op.order_product_id, op.quantity,  
GROUP_CONCAT(oo.product_option_id SEPARATOR ',') as option_ids, GROUP_CONCAT(oo.product_option_value_id SEPARATOR ',') as value_ids
FROM `o2oeco_order_product` AS op LEFT JOIN `o2oeco_order_option` AS oo ON oo.order_product_id = op.order_product_id
WHERE op.order_id IN (380,381) 
GROUP BY op.product_id,oo.order_product_id
ORDER BY `order_product_id`  DESC

orderid name    product_id  order_product_id quantity   option_ids  value_ids   
381     sample pr   207     540     6   NULL    NULL
381     sample pr   219     539     1   308     228
381     sample p    219     538     2   308     227
381     079c1477    221     537     2   367,368,338     340,341,298
381     079c1477    221     536     3   367,368,338     339,342,283
380     e7181331    212     535     3   NULL    NULL
380     Sample p    198     534     1   NULL    NULL
380     079c1477    221     533     1   367,368,338     339,342,283
380     079c1477    221     532     2   367,368,338     340,342,298
380     079c1477    221     531     1   338,367,368     283,340,341
380     079c1477    221     530     1   367,368,338     340,341,324
380     079c1477    221     529     1   367,368,338     340,341,298

Теперь я хочу объединить / объединить или сгруппировать (не уверен) результат на основе product_id & product_option, чтобы один и тот же продукт с одинаковым значением опции можно было объединить, чтобы легко выбрать один и тот же физический продукт

enter image description here

То, что мне нужно объединить выше результата (4-я строка и 12-я строка должны быть объединены) и количество должно быть 3 (2 + 1) для 4-й строки, на самом деле я хочу объединить количество для того же продукта с теми же значениями параметров.


orderid name    product_id  order_product_id quantity   option_ids  value_ids   
381     sample pr   207     540     6   NULL    NULL
381     sample pr   219     539     1   308     228
381     sample p    219     538     2   308     227
380,381 079c1477    221     537     3   367,368,338     340,341,298
380,381 079c1477    221     536     4   367,368,338     339,342,283
380     e7181331    212     535     3   NULL    NULL
380     Sample p    198     534     1   NULL    NULL
380     079c1477    221     532     2   367,368,338     340,342,298
380     079c1477    221     531     1   338,367,368     283,340,341
380     079c1477    221     530     1   367,368,338     340,341,324

1 Ответ

0 голосов
/ 20 июня 2019

Я не понимаю вашего мнения о результатах этого запроса. Но, если вы хотите получить результаты запроса, как это:

380,381

GROUP_CONCAT( orderid SEPARATOR ',' ) AS group_order_id,
...