>데이터 베이스 >MySQL 튜토리얼 >GROUP_CONCAT을 사용하여 MySQL에서 여러 하위 행을 단일 상위 행으로 결합하는 방법은 무엇입니까?

GROUP_CONCAT을 사용하여 MySQL에서 여러 하위 행을 단일 상위 행으로 결합하는 방법은 무엇입니까?

DDD
DDD원래의
2024-11-27 17:07:11799검색

How to Combine Multiple Child Rows into a Single Parent Row in MySQL Using GROUP_CONCAT?

MySQL에서 하위 행을 하나의 상위 행으로 결합

여기에 제시된 문제는 Ordered_Item과 Ordered_Options라는 두 테이블의 데이터를 결합하는 것입니다. 목표는 Ordered_Options의 해당 항목과 관련된 모든 옵션의 연결을 포함하여 Ordered_Item의 각 항목에 대해 단일 행을 출력하는 것입니다.

데이터베이스 구조

**Ordered_Item**
ID | Item_Name
1  | Pizza
2  | Stromboli

**Ordered_Options**
Ordered_Item_ID | Option_Number | Value
1               43         Pepperoni
1               44         Extra Cheese
2               44         Extra Cheese

제안된 솔루션

제공된 쿼리를 시도했지만 구문적으로 정확하며 다중 조인을 사용하여 가능한 접근 방식을 보여줍니다. 그러나 GROUP_CONCAT 함수를 사용하면 더 효율적인 솔루션을 얻을 수 있습니다.

GROUP_CONCAT을 사용하면 여러 행의 값을 단일 문자열로 연결할 수 있습니다. 다음 쿼리는 GROUP_CONCAT을 활용하여 원하는 출력을 얻습니다.

select
  ordered_item.id as `Id`,
  ordered_item.Item_Name as `ItemName`,
  GROUP_CONCAT(Ordered_Options.Value) as `Options`
from
  ordered_item,
  ordered_options
where
  ordered_item.id=ordered_options.ordered_item_id
group by
  ordered_item.id

Output

Id              ItemName       Options

1               Pizza          Pepperoni,Extra Cheese

2               Stromboli      Extra Cheese

추가 고려 사항

  • 여러 옵션: 이 솔루션은 쿼리를 추가로 수정하지 않고도 항목당 원하는 수의 옵션을 처리할 수 있습니다.
  • 잘림: 연결된 결과가 기본 최대 길이를 초과하는 경우 SET 사용을 고려하세요. 세션 group_concat_max_len = 8192; 한도를 높이세요.

위 내용은 GROUP_CONCAT을 사용하여 MySQL에서 여러 하위 행을 단일 상위 행으로 결합하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.