代码之家  ›  专栏  ›  技术社区  ›  Swar

MySQL:多行作为逗号分隔的单行

  •  30
  • Swar  · 技术社区  · 15 年前

    我有两张桌子:碟子和碟子。盘桌上有所有的菜,“盘有盘”桌和“盘”桌有一对多的关系。即一道菜可以有多道菜。例如

    dish_id   dish_name
    1         dish_1
    2         dish_2
    3         dish_3
    4         dish_4
    

    盘子里有盘子 :

    meal_id   dish_id
    1         2
    1         3
    1         4
    

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

    这是用逗号分隔的菜id和每顿饭的名称。怎么做?

    1 回复  |  直到 15 年前
        1
  •  89
  •   Michael Pakhantsov    15 年前

    使用组连接函数

    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