Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Wygeneruj tabelę zamówień pogrupowanych według user_id, która sumuje ilość produktu

Nie jestem pewien, dlaczego używasz podzapytania w select . Wybierasz także kolumny, których nie chcesz/potrzebujesz.

Czy to robi to, czego chcesz?

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;

Musiałem spekulować, skąd pochodzą niektóre kolumny, ponieważ twoje pytanie nie jest jednoznaczne.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak działa HANDLER FOR NOT FOUND i jakie jest jego zastosowanie?

  2. Eksportuj bazę danych MySQL do bazy danych SQLite

  3. Grupuj posty według daty w Wordpress

  4. MySQL – Błąd połączenia – [MySQL][ODBC 5.3(w) Driver] Host „IP” nie może połączyć się z tym serwerem MySQL

  5. PHP mySql dane do pliku JSON