首页 > 数据库 > mysql教程 > 如何在 MySQL 中检索每顿饭的逗号分隔的菜肴 ID 和名称?

如何在 MySQL 中检索每顿饭的逗号分隔的菜肴 ID 和名称?

DDD
发布: 2024-11-09 10:21:02
原创
326 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板