Heim  >  Artikel  >  Datenbank  >  Wie rufe ich durch Kommas getrennte Gericht-IDs und Namen für jede Mahlzeit in MySQL ab?

Wie rufe ich durch Kommas getrennte Gericht-IDs und Namen für jede Mahlzeit in MySQL ab?

DDD
DDDOriginal
2024-11-09 10:21:02291Durchsuche

How to Retrieve Comma-Separated Dish IDs and Names for Each Meal in MySQL?

Durch Kommas getrennte Werte aus mehreren Zeilen in MySQL abrufen

In diesem Szenario haben Sie zwei Tabellen, DISH und DISH_HAS_DISHES, mit einer Eins -zu-viele-Beziehung. DISH enthält Gerichte, während DISH_HAS_DISHES die Beziehung zwischen Mahlzeiten und Gerichten speichert. Ihr Ziel besteht darin, Daten in einem Format abzurufen, in dem jede Mahlzeit eine durch Kommas getrennte Liste von Gerichts-IDs und Gerichtsnamen enthält.

Um dies zu erreichen, können Sie die GROUP_CONCAT-Funktion von MySQL nutzen. Mit dieser Funktion können Sie Werte aus mehreren Zeilen zu einer einzigen Zeichenfolge verketten, getrennt durch ein angegebenes Trennzeichen. So verwenden Sie es, um Ihre Anforderungen zu erfüllen:

SELECT m.meal_Id,
        GROUP_CONCAT(dish_id) AS dish_ids,
        GROUP_CONCAT(dish_name) AS dish_names
FROM DISH_HAS_DISHES m
JOIN DISH d ON (m.dish_id = d.dish_id)
GROUP BY meal_Id

In dieser Abfrage:

  • GROUP_CONCAT(dish_id) verkettet die Teller-IDs in einer einzigen Zeichenfolge, getrennt durch Kommas, und weist es dem Alias ​​Dish_ids zu.
  • GROUP_CONCAT(dish_name) auf ähnliche Weise verkettet die Namen der Gerichte.

Die GROUP BY-Klausel gruppiert die Ergebnisse nach Mahlzeit_ID und stellt sicher, dass die durch Kommas getrennten Werte nach jeder Mahlzeit gruppiert werden.

Die Ausgabe dieser Abfrage wird sei eine Tabelle mit drei Spalten:

  • meal_Id: Die Mahlzeit ID.
  • dish_ids: Eine durch Kommas getrennte Liste der mit der Mahlzeit verbundenen Gerichts-IDs.
  • dish_names: Eine durch Kommas getrennte Liste der mit der Mahlzeit verbundenen Gerichtsnamen.

Dadurch erhalten Sie das gewünschte Ergebnis, bei dem jede Mahlzeit ihre jeweiligen Gerichts-IDs und Namen in einem einzigen, durch Kommas getrennten Namen hat Zeichenfolge.

Das obige ist der detaillierte Inhalt vonWie rufe ich durch Kommas getrennte Gericht-IDs und Namen für jede Mahlzeit in MySQL ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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