आइए बताते हैं कि मेरे पास तीन अलग-अलग MySQL टेबल हैं:
तालिका products
:
id | name
1 Product A
2 Product B
तालिका partners
:
id | name
1 Partner A
2 Partner B
तालिका 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 के साथ काम नहीं करता है ? पंक्ति मानों से तालिका कॉलम बनाने की संभावना