phép nói rằng tôi có ba bảng MySQL khác nhau:MySQL trục hàng vào số năng động của cột
Bảng products
:
id | name
1 Product A
2 Product B
Bảng partners
:
id | name
1 Partner A
2 Partner B
Bảng 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
Tôi muốn có một bảng với các đối tác trong hàng và sản phẩm dưới dạng cột. Cho đến nay tôi đã có thể để có được một kết quả như thế này:
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
Sử dụng truy vấn này:
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
nhưng tôi muốn có thay vì một cái gì đó như:
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
Vấn đề là rằng tôi không thể biết số lượng sản phẩm tôi sẽ có để số cột cần thay đổi động tùy thuộc vào các hàng trong bảng sản phẩm.
câu trả lời rất tốt này dường như không làm việc với mysql: T-SQL Pivot? Possibility of creating table columns from row values
Liên kết giới thiệu [Row to Column] (https://stackoverflow.com/questions/15745042/efficiently-convert-rows-to-columns-in-sql-server) cho nhiều đề xuất. –