SQL Оператор с использованием условия CASE, возвращающий значение NULL - PullRequest
0 голосов
/ 06 мая 2020

У меня есть 2 таблицы: wp_new_comissions и wp_woocommerce_order_items, и мне нужно получить некоторую информацию, соответствующую этим 2 таблицам.

wp_new_comissions имеет следующие данные:

comission_id    user_id order_id    item_order_id   item_value  item_liquid_value   item_seller comission_percent   comission
286 606 14580   2120    79.9    71.91   606 15  10.79
291 606 14626   2127    79.9    71.91   606 15  10.79
309 717 16830   2401    89.9    80.91   717 10  8.09
312 717 16895   2430    89.9    80.91   717 10  8.09
319 717 17008   2475    89.9    80.91   717 10  8.09
330 606 18052   2613    79.9    71.91   606 15  10.79
822 606 14032   1971    76.42   68.78   606 15  10.32
823 606 14039   1977    76.42   68.78   606 15  10.32
824 606 14052   1980    67.92   61.13   606 15  9.17
826 606 14160   1986    55.93   50.34   606 15  7.55
827 606 14166   1993    55.93   50.34   606 15  7.55
828 606 14166   1994    62.93   56.64   606 15  8.5
829 606 14194   2005    55.93   50.34   606 15  7.55
868 606 15208   2132    67.92   61.12   606 15  9.17
869 606 15208   2133    67.92   61.12   606 15  9.17
900 606 15262   2261    89.9    80.91   606 15  12.14
911 606 15747   2297    79.9    71.91   606 15  10.79
947 717 16825   2399    89.9    80.91   717 10  8.09
950 717 16873   2418    89.9    80.91   717 10  8.09
951 717 16873   2419    89.9    80.91   717 10  8.09
974 717 17449   2521    89.9    80.91   717 10  8.09
978 717 17523   2533    89.9    80.91   717 10  8.09
1070    717 20757   2803    89.9    80.91   717 10  8.09

wp_woocommerce_order_items имеет следующие данные:

order_item_id   order_item_name order_item_type order_id
1971    CAMISA Live to Race line_item   14032
1973    valeapena   coupon  14032
1977    CAMISA Bia Brasil   line_item   14039
1979    valeapena   coupon  14039
1980    Carrinho Bia Figueiredo line_item   14052
1982    valeapena   coupon  14052
1986    Carrinho Bia Figueiredo line_item   14160
1988    valeapena   coupon  14160
1993    Boné Bia Figueiredo line_item   14166
1994    CAMISA Bia Brasil   line_item   14166
1996    valeapena   coupon  14166
2005    Boné Bia Figueiredo line_item   14194
2007    valeapena   coupon  14194
2120    Boné Bia Figueiredo line_item   14580
2121    Pulseira Pilhado    line_item   14580
2127    Boné Bia Figueiredo line_item   14626
2132    Boné Bia Figueiredo line_item   15208
2133    Boné Bia Figueiredo line_item   15208
2135    atletapresente  coupon  15208
2261    CAMISA Girl Power   line_item   15262
2297    Carrinho Bia Figueiredo line_item   15747
2399    CAMISA Eu escolho ser campeão   line_item   16825
2401    CAMISA Eu escolho ser campeão   line_item   16830
2418    CAMISA Eu escolho ser campeão   line_item   16873
2419    CAMISA Eu escolho ser campeão   line_item   16873
2430    CAMISA Eu escolho ser campeão   line_item   16895
2475    CAMISA Eu escolho ser campeão   line_item   17008
2521    CAMISA Eu escolho ser campeão   line_item   17449
2533    CAMISA Eu escolho ser campeão   line_item   17523
2613    Boné Bia Figueiredo line_item   18052
2803    CAMISA Eu escolho ser campeão   line_item   20757

Я выполняю followin SQL:

SELECT 
  c.comission_id as `ID`, c.user_id as `ID Seller`, 
  c.order_id as `Núm. Pedido`, c.item_order_id as `Item ID`, 
  (CASE i.order_item_id WHEN c.item_order_id 
                        THEN i.order_item_name END) as `Item`,
  c.item_value as `Total Linha`, 
  c.item_liquid_value as `Total Líquido`, 
  c.item_seller as `ID Seller Item`, 
  c.comission_percent as `Comissão (%)`, 
  c.comission as `Comissão (R$)`,  
  GROUP_CONCAT((CASE WHEN i.order_item_type = 'coupon' 
                     THEN i.order_item_name END) SEPARATOR ', ') 
    as `CUPOM`
FROM `wp_new_comissions` c 
RIGHT OUTER JOIN `wp_woocommerce_order_items` i 
   on c.order_id = i.order_id
where  c.user_id = 606  group by c.item_order_id

и возвращаю данные:

enter image description here

Почему когда у меня есть 2 Order_Item_id (ITEM ID), относящиеся к одному и тому же идентификатору заказа (Num. Pedido), Order_item_name (Item) возвращает NULL? он должен вернуть order_item_name в таблице wp_woocommerce_order_items с тем же order_item_id.

...