Digamos que tengo tres tablas diferentes MySQL:MySQL renglón pivote en el número de dinámica de columnas
Tabla products
:
id | name
1 Product A
2 Product B
Tabla partners
:
id | name
1 Partner A
2 Partner B
tabla 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
me gustaría conseguir una mesa con los socios en las filas y columnas como productos. Hasta ahora yo era capaz de obtener una salida como esta:
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
El uso de esta consulta:
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
pero me gustaría tener lugar algo así como:
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
El problema es que no puedo decir cuántos productos tendré, por lo que el número de columna debe cambiar dinámicamente según las filas en la tabla de productos.
Esta muy buena respuesta no parece trabajar con MySQL: T-SQL Pivot? Possibility of creating table columns from row values
Consulte el enlace [Fila a columna] (https://stackoverflow.com/questions/15745042/efficiently-convert-rows-to-columns-in-sql-server) para obtener múltiples sugerencias. –