programing

MySQL : 여러 행을 쉼표로 구분한 단일 행으로 표시

stoneblock 2023. 8. 2. 08:39

MySQL : 여러 행을 쉼표로 구분한 단일 행으로 표시

테이블은 DISH와 DISH_HAS_DISHES 두 개입니다.Dish Table은 모든 요리를 포함하며 "Dish_has_dish" 테이블은 "Dish" 테이블과 일대일 관계를 가집니다.즉, 한 접시에 여러 접시가 있을 수 있습니다.예를들면

접시:

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 FUNCTION 사용

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

언급URL : https://stackoverflow.com/questions/3492539/mysql-multiple-row-as-comma-separated-single-row