MySQL сводит строку в динамическое число столбцов

Допустим, у меня есть три разные таблицы MySQL:

Table products:

id | name
 1   Product A
 2   Product B

Table partners:

id | name
 1   Partner A
 2   Partner B

Table sales:

partners_id | products_id
          1             2
          2             5
          1             5
          1             3
          1             4
          1             5
          2             2
          2             4
          2             3
          1             1

Я хотел бы получить таблицу с партнерами по строкам и продукты в виде столбцов. До сих пор я мог получить вывод, как это:

name      | name      | COUNT( * )
Partner A   Product A          1
Partner A   Product B          1
Partner A   Product C          1
Partner A   Product D          1
Partner A   Product E          2
Partner B   Product B          1
Partner B   Product C          1
Partner B   Product D          1
Partner B   Product E          1

Используя этот запрос:

SELECT partners.name, products.name, COUNT( * ) 
FROM sales
JOIN products ON sales.products_id = products.id
JOIN partners ON sales.partners_id = partners.id
GROUP BY sales.partners_id, sales.products_id
LIMIT 0 , 30

но я бы хотел иметь что-то вроде:

partner_name | Product A | Product B | Product C | Product D | Product E
Partner A              1           1           1           1           2
Partner B              0           1           1           1           1

Проблема в том, что я не могу сказать, сколько продуктов у меня будет, поэтому номер столбца должен динамически меняться в зависимости от строк в таблице продуктов.

Этот очень хороший ответ не работает с MySQL:T-SQL Pivot? Возможность создания столбцов таблицы из значений строк

Ответы на вопрос(1)

Ваш ответ на вопрос