Sql запрос - получить ID всех заказов woocommerce cо статусом wc-processing по каждому клиенту

Хочу получить ID всех заказов woocommerce cо статусом wc-processing по каждому клиенту. Точнее взять все заказы со статусом wc-processing и вывести уникальные емейлы заказчиков, их имена и список id заказов. Хочу сделать одним sql запросом. Сейчас в 2 запроса + код php:

// Все заказы со статусом wc-processing
$query = "select
p.ID as orders,
max( CASE WHEN pm.meta_key = '_billing_email' and p.ID = pm.post_id THEN pm.meta_value END ) as billing_email,
max( CASE WHEN pm.meta_key = '_billing_first_name' and p.ID = pm.post_id THEN pm.meta_value END ) as _billing_first_name,
max( CASE WHEN pm.meta_key = '_billing_last_name' and p.ID = pm.post_id THEN pm.meta_value END ) as _billing_last_name 
from wp_posts p  join wp_postmeta pm on p.ID = pm.post_id
where post_type = 'shop_order' and post_status = 'wc-processing' group by p.ID";
        $temp_items = $wpdb->get_results( $query, ARRAY_A );
        
        // Оставляем уникальные емейлы
        foreach ($temp_items as $n) {
            $clients[$n['billing_email']] = $n;
        }
        $clients = array_values($clients);
        
// По каждому емейлу собираем список из id заказов со статусом wc-processing
        foreach($clients as $key => $client) {
            $query2 = "select
                group_concat( post_id separator ',' ) as order_ids
            from
                wp_postmeta pm 
                join wp_posts p on p.ID = pm.post_id
            where
                pm.meta_key = '_billing_email' and pm.meta_value = '".$client['billing_email']."' and
                p.post_type = 'shop_order' and
                p.post_status = 'wc-processing'";
                $items = $wpdb->get_results( $query2, ARRAY_A );
                $clients[$key]['orders'] = $items[0]['order_ids'];
        }

Как можно объединить, чтобы получился такой массив:

orders|billing_email|_billing_first_name|_billing_last_name|
1,4,26|[email protected]|test name|test lastname|

Ответы (0 шт):