Heim >Datenbank >MySQL-Tutorial >Wie kombiniere ich mit GROUP_CONCAT mehrere untergeordnete Zeilen zu einer einzelnen übergeordneten Zeile in MySQL?
Untergeordnete Zeilen in einer übergeordneten Zeile in MySQL kombinieren
Die hier vorgestellte Herausforderung besteht darin, Daten aus zwei Tabellen zu kombinieren: Ordered_Item und Ordered_Options. Das Ziel besteht darin, für jeden Artikel in Ordered_Item eine einzelne Zeile auszugeben, einschließlich einer Verkettung aller diesem Artikel zugeordneten Optionen aus Ordered_Options.
Datenbankstruktur
**Ordered_Item** ID | Item_Name 1 | Pizza 2 | Stromboli **Ordered_Options** Ordered_Item_ID | Option_Number | Value 1 43 Pepperoni 1 44 Extra Cheese 2 44 Extra Cheese
Vorgeschlagene Lösung
Der bereitgestellte Abfrageversuch ist zwar nicht syntaktisch korrekt, zeigt aber a Möglicher Ansatz mit mehreren Joins. Eine effizientere Lösung kann jedoch mit der Funktion GROUP_CONCAT erreicht werden.
GROUP_CONCAT ermöglicht die Verkettung von Werten aus mehreren Zeilen in einer einzigen Zeichenfolge. Die folgende Abfrage verwendet GROUP_CONCAT, um die gewünschte Ausgabe zu erzielen:
select ordered_item.id as `Id`, ordered_item.Item_Name as `ItemName`, GROUP_CONCAT(Ordered_Options.Value) as `Options` from ordered_item, ordered_options where ordered_item.id=ordered_options.ordered_item_id group by ordered_item.id
Ausgabe
Id ItemName Options 1 Pizza Pepperoni,Extra Cheese 2 Stromboli Extra Cheese
Zusätzliche Überlegungen
Das obige ist der detaillierte Inhalt vonWie kombiniere ich mit GROUP_CONCAT mehrere untergeordnete Zeilen zu einer einzelnen übergeordneten Zeile in MySQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!