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!