sql >> Databasteknik >  >> RDS >> Mysql

Generera en tabell över beställningar grupperade efter user_id som summerar produktens kvantitet

Jag är inte säker på varför du använder en underfråga i select . Du väljer också kolumner som du inte vill ha/behöver.

Gör detta som du vill?

select p.user_id,
       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,
       max( CASE WHEN pm.meta_key = '_billing_address_1' and p.ID = pm.post_id THEN pm.meta_value END ) as _billing_address_1,
       group_concat(distinct oi.order_item_name separator '|' ) as order_items
from wp_posts p join
     wp_postmeta pm
     on p.ID = pm.post_id join
     wp_woocommerce_order_items oi
     on p.ID = oi.order_id
where p.post_type = 'shop_order' and
      p.post_status = 'wc-completed' and
      oi.order_item_name = 'Product Name'
group by p.user_id;

Jag var tvungen att spekulera om var några kolumner kommer ifrån, eftersom din fråga inte är explicit.




  1. Vad är LIKE Logical Operator i SQL Server - SQL Server / TSQL Tutorial Del 123

  2. 4 sätt att lista vyerna i en SQLite-databas

  3. Omdirigera till hemsidan efter inloggning php

  4. Flera sätt att infoga delade avgränsade strängar i en kolumn