2016-06-27 17 views
0

Ich mag die folgende Datenbanktabelle von dynamischen Spalten in Zeilen in MySQL zu transformieren:MySQL PivotTable - Wie dynamische Spalten in Zeilen konvertieren?

Ich habe bereits einen tiefen Blick auf stackoverflow.com sowie in diesem großartigen Beispiel here aber keiner der Fälle entspricht meine Forderung.
Das Beispiel aus dem Link oben gezeigt würde meine Vorstellungen, wenn es dynamisch sein würde (ich weiß nicht, den Wert ‚Farbe‘ oder ‚Größe‘, weil sie dynamisch ändert):


So

SELECT 
item_id, 
MAX(IF(property_name = 'color', value, NULL)) AS color, 
MAX(IF(property_name = 'size', value, NULL)) AS size, 
... 
... 
... 
FROM 
properties 
GROUP BY 
item_id; 
diese meine Datenbanktabelle ist:

id | customer_id | customer_tbl_id | customer_tbl_col_name 
1 |   1 |    1 | CustomerColName_1 
2 |   1 |    1 | CustomerColName_2 
3 |   1 |    1 | CustomerColName_3 
4 |   1 |    2 | CustomerColName_4 
5 |   1 |    2 | CustomerColName_5 
6 |   2 |    1 | CustomerColName_6 
7 |   2 |    1 | CustomerColName_7 

nun das Ergebnis meiner SQL-Abfrage wie folgt sein sollte:

1 (customer_id) | 1 (customer_tbl_id) | CustomerColName_1 | CustomerColName_2 | CustomerColName_3 
1 (customer_id) | 2 (customer_tbl_id) | CustomerColName_4 | CustomerColName_5 
2 (customer_id) | 1 (customer_tbl_id) | CustomerColName_6 | CustomerColName_7 

Antwort

0

Verwenden GROUP_CONCAT

SELECT customer_id, customer_tbl_id, GROUP_CONCAT(customer_tbl_col_name) as customer_tbl_col_name 
FROM table 
GROUP BY customer_id , customer_tbl_id 
+0

Genau das, was ich suchte. Danke vielmals. Du hast mir viel Zeit gespart !!! – njlqay

+0

Um zwei Felder zu kombinieren: GROUP_CONCAT (DISTINCT concat (field1, ",", field2)) – tyro

Verwandte Themen