Kann MySQL Spalten in Zeilen konvertieren und dynamisch so viele Spalten hinzufügen, wie für die Zeilen benötigt werden. Ich denke, dass meine Frage mit Pivot-Tabellen zu tun hat, aber ich bin mir nicht sicher, und ich weiß nicht, wie ich diese Frage anders gestalten soll, als mit dem folgenden Beispiel.Mysql-Abfrage zum dynamischen Konvertieren von Zeilen in Spalten
ein zwei Tabellen A und B gegeben, die
aussehenTabelle A
+--+-----+----+
|id|order|data|
+--+-----+----+
|1 |1 |P |
+--+-----+----+
|2 |2 |Q |
+--+-----+----+
|2 |1 |R |
+--+-----+----+
|1 |2 |S |
+--+-----+----+
Ich mag eine Abfrage schreiben, die wie folgt aussieht:
Ergebnis Tabelle
+--+-----+-----+
|id|data1|data2|
+--+-----+-----+
|1 |P |S |
+--+-----+-----+
|2 |R |Q |
+--+-----+-----+
Grundsätzlich möchte ich jede Zeile in Tabelle B in eine Spalte in der Ergebnistabelle drehen. Wenn ein neuer Eintrag zu Tabelle B für ID = 1 hinzugefügt wurde, möchte ich die Ergebnistabelle automatisch um eine Spalte erweitern, um diesen zusätzlichen Datenpunkt aufzunehmen.
Fantastisch, zweites Beispiel ist genau das, wonach ich gefragt habe. Leider gibt es für mich eine Menge neuer SQL-Syntax, um mich zu verstehen. – Dom
Der mit '@' gekennzeichnete Präfix wird als Benutzervariable bezeichnet. und hier, http://dev.mysql.com/doc/refman/5.0/en/sql-syntax-prepared-statements.html, um 'PreparedStatements' zu lernen. –
Die obige Lösung funktioniert gut, aber mein Szenario ist, dass statt Pivot auf einer Spalte auf der Grundlage einer anderen Spalte habe ich auch andere Spalten, auf denen ich Pivot auf Basis einer anderen Spalte anwenden möchten. Es ist so, als ob ich zwei separate Pivots auf zwei Spalten einer Tabelle anlege und dort das Ergebnis einsende. Any Help – Moon