MySQL : Multiple row as comma separated single row

标签 mysql database

我有两个表:DISH 和 DISH_HAS_DISHES。 Dish 表包含所有菜肴,并且“Dish_has_dishes”表与“Dish”表具有一对多的关系。 IE。一道菜可以有多道菜。例如

:

dish_id   dish_name
1         dish_1
2         dish_2
3         dish_3
4         dish_4

DISH_HAS_DISHES:

meal_id   dish_id
1         2
1         3
1         4

这里的meal_id 和dish_id 都是DISH 表中的ID。现在我想要这样的格式:

meal_id     dish_ids     dish_names
1           2,3,4        dish_2, dish_3, dish_4

这是每餐的逗号分隔的菜品 ID 和名称。该怎么做?

最佳答案

使用 GROUP_CONCAT 函数

http://dev.mysql.com/tech-resources/articles/4.1/grab-bag.html

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

关于MySQL : Multiple row as comma separated single row,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3492539/

相关文章:

MySQL Regex - 如何查找特定的连续单词集

mysql - 选择成员年龄都在 X 岁以下的 GROUP

mysql - 我在 mysql 数据库中收到一个错误,说 "#1136 column count doesn' t 匹配第 1 行的值计数”

mysql - 如何将 sql 数据库 [sakila] 加载到 Neo4j 中?

android - 如何显示来自数据库的html页面

mysql - sql查询根据2个表中的值更新字段

php - 嵌套的 while 循环,注释相互嵌套

插入新寄存器时Mysql自动递增错误

database - Oracle ALL_UPDATABLE_COLUMNS 内容

sql - 是否可以在一个表的一列中连接两个或多个具有ID的表?