MySQL соединение и сводная таблица - PullRequest
0 голосов
/ 27 июня 2018

tbl_orders

order_id, qty
123, 2
124, 1
125, 3
126, 1
127, 1
128, 1
129, 4

tbl_score

order_id, name, created
123, product 1, 2018-06-01
124, product 1, 2018-06-01
125, product 1, 2018-06-02
126, product 3, 2018-06-02
127, product 2, 2018-06-03
128, product 3, 2018-06-03
129, product 3, 2018-06-03

Требуемый вывод

             2018-06-01       2018-06-02        2018-06-03
product 1        3                  3               0
product 2        0                  0               1
product 3        0                  1               5

Следующий запрос выдает требуемые выходные данные для 2018-06-01, но на оперативную базу данных уходит около 1 минуты и 45 секунд. Если я добавлю больше дат, используя case, это займет больше времени. Может ли кто-нибудь помочь мне отрегулировать его или предложить другое решение?

select s.name, 
  sum( case when date(s.created) = '2018-06-01' then o.qty else 0 end ) as 'June 1'  
from tbl_score s  inner join tbl_order o 
 on s.order_id=o.order_id group by s.name;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...