Verketten mehrerer untergeordneter Zeilen zu einer einzigen Zeile in MySQL
Bei der Arbeit mit relationalen Datenbanken ist es häufig erforderlich, Daten aus mehreren verwandten Zeilen zu kombinieren Reihen in eine einzelne Reihe. Diese Aufgabe kann mit der Funktion GROUP_CONCAT in MySQL ausgeführt werden.
Problemstellung:
Betrachten Sie zwei Tabellen: Ordered_Item und Ordered_Options. In der Tabelle „Ordered_Item“ werden bestellte Artikel gespeichert, während in der Tabelle „Ordered_Options“ die mit jedem bestellten Artikel verbundenen Optionen aufgezeichnet werden. Ziel ist es, eine Abfrage zu erstellen, die für jeden bestellten Artikel eine einzelne Zeile ausgibt, wobei die Optionen als separate Spalten enthalten sind.
Lösung:
Die folgende Abfrage kombiniert Zeilen aus den Tabellen Ordered_Item und Ordered_Options mithilfe der Funktion GROUP_CONCAT:
SELECT ordered_item.id AS `Id`, ordered_item.Item_Name AS `ItemName`, GROUP_CONCAT(Ordered_Options.Value) AS `Options` FROM ordered_item JOIN ordered_options ON ordered_item.id = ordered_options.ordered_item_id GROUP BY ordered_item.id;
Diese Abfrage verwendet die Funktion GROUP_CONCAT zum Verketten die Werte der Spalte „Wert“ aus der Tabelle „Ordered_Options“, durch Kommas getrennt. Die verketteten Werte werden der Spalte „Optionen“ in der Ausgabe zugewiesen.
Ausgabe:
Die Ausgabe der Abfrage ähnelt der folgenden:
| Id | ItemName | Options | | --- | -------- | ------- | | 1 | Pizza | Pepperoni,Extra Cheese | | 2 | Stromboli | Extra Cheese |
Hinweis:
Um mögliche Unterschiede in der Reihenfolge der Optionen auszugleichen, sollten Sie die Verwendung einer CASE-Anweisung in Betracht ziehen Ordnen Sie die Werte nach Option_Number, bevor Sie sie mit GROUP_CONCAT verketten.
Das obige ist der detaillierte Inhalt vonWie verkette ich mehrere untergeordnete Zeilen in einer einzigen übergeordneten Zeile in MySQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!