次のクエリがあります。
$query = db_select('commerce_order', 'cord')->extend('TableSort');
$query->join('commerce_line_item', 'li', 'cord.order_id = li.order_id');
$query->join('commerce_product', 'item', 'item.sku = li.line_item_label');
$query->fields('cord', array('order_id'))
->fields('li', array('quantity'))
->fields('item', array('title', 'sku'))
->groupBy('title')
->orderByHeader($header);
$query->addExpression('SUM(quantity)', 'quantity');
$result = $query->execute();
ご覧のとおり、結果は「タイトル」でグループ化されています。行の 1 つが次のようになります。
商品1 - 0000003 - 3.00 - 612
3.00 は数量で、612 は注文 ID の1 つです。注文 612 には数量 2 が含まれており、注文 615 には数量 1 が含まれています。注文 ID 612 の隣に注文 ID 615 を表示するにはどうすればよいですか? したがって、行は次のようになります。
商品1 - 0000003 - 3.00 - 612, 615
ご理解いただけると幸いです。ご協力いただきありがとうございます。
解決
$query->addExpression("GROUP_CONCAT(li.order_id separator ', ')", 'order_id');