Heim > Datenbank > MySQL-Tutorial > Wie verkette ich mehrere untergeordnete Zeilen in einer einzigen übergeordneten Zeile in MySQL?

Wie verkette ich mehrere untergeordnete Zeilen in einer einzigen übergeordneten Zeile in MySQL?

Mary-Kate Olsen
Freigeben: 2024-11-28 07:36:13
Original
755 Leute haben es durchsucht

How to Concatenate Multiple Child Rows into a Single Parent Row in MySQL?

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;
Nach dem Login kopieren

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 |
Nach dem Login kopieren

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!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage