首頁 >資料庫 >mysql教程 >如何在 MySQL 中檢索每餐的逗號分隔的菜餚 ID 和名稱?

如何在 MySQL 中檢索每餐的逗號分隔的菜餚 ID 和名稱?

DDD
DDD原創
2024-11-09 10:21:02327瀏覽

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

從MySQL 中的多行擷取逗號分隔值

在此場景中,您有兩個表格:DISH 和DISH_HAS_DISHES,其中一個表一對多關係。 DISH包含菜品,而DISH_HAS_DISHES儲存的是餐點和菜色之間的關係。您的目標是以每餐都有一個以逗號分隔的菜餚 ID 和菜餚名稱清單的格式檢索資料。

要實現此目標,您可以利用 MySQL 的 GROUP_CONCAT 函數。此函數允許您將多行中的值連接成單一字串,並用指定的分隔符號分隔。以下是如何使用它來滿足您的要求:

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

在此查詢中:

  • GROUP_CONCAT(dish_id) 將菜餚ID 連接成單個字符串,並用逗號分隔,並將其分配給別名dish_ids。
  • GROUP_CONCAT(dish_name) 類似地連接菜餚名稱。

GROUP BY 子句以meal_Id 分組,並確保逗號分隔的數值是依照每餐分組。

此查詢的輸出將是一個包含三列的表:

  • meal_Id:膳食 ID。
  • dish_ids:逗號- 與餐點相關的菜餚 ID 的分隔清單。
  • dish_names:與餐點相關的以逗號分隔的菜餚名稱清單。

這將為您提供所需的結果,其中每餐都有各自的菜餚 ID 和名稱,以逗號分隔的字符串形式表示。

以上是如何在 MySQL 中檢索每餐的逗號分隔的菜餚 ID 和名稱?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn