SQL에서 쉼표로 구분된 값 필드를 사용하여 테이블을 조인하는 방법은 무엇입니까?

Susan Sarandon
풀어 주다: 2024-11-10 12:06:02
원래의
328명이 탐색했습니다.

How to Join Tables with Comma-Separated Value Fields in SQL?

쉼표로 구분된 값을 사용하여 여러 조인 필드 쿼리

SQL에서 쉼표로 구분된 목록(CSV)이 포함된 테이블을 처리할 때 해당 필드에서는 조인을 효과적으로 수행하기가 어려울 수 있습니다. 이 문서에서는 영화 테이블의 카테고리 열에 여러 카테고리 ID가 포함되어 있는 특정 시나리오를 살펴보고, 목표는 카테고리 테이블에서 해당 카테고리 이름을 가져오는 동안 이를 완전히 제외하는 것입니다.

다음 표에서는 시나리오를 설명합니다. :

Table categories:
-id-       -name-
1          Action
2          Comedy
4          Drama
5          Dance

Table movies:
-id-       -categories-
1          2,4
2          1,4
4          3,5
로그인 후 복사

원하는 조인을 수행하려면 find_in_set() 함수를 group_concat() 작업과 함께 활용할 수 있습니다. 쿼리는 다음과 같습니다.

select
    m.id,
    group_concat(c.name)
from
    movies m
    join categories c on find_in_set(c.id, m.categories)
group by
    m.id
로그인 후 복사

쿼리 설명:

  • find_in_set()는 지정된 하위 문자열이 문자열 내에 존재하는지 확인합니다. 이 경우 카테고리 테이블의 카테고리 ID는 영화 테이블 카테고리 열의 CSV에 있습니다.
  • 조인 절은 find_in_set() 조건에 따라 두 테이블을 연결합니다.
  • group_concat()는 각 영화 ID에 대해 일치하는 모든 카테고리 이름을 단일 문자열로 연결합니다.
  • group by 절은 결과를 보장합니다. 영화 ID별로 그룹화되어 깔끔하고 정리된 출력을 제공합니다.

결과 출력에는 해당 카테고리 이름과 함께 영화 ID가 표시됩니다. 배열 형식으로. 이를 통해 영화 테이블에서 CSV를 디코딩할 필요 없이 관련 카테고리에 쉽게 액세스할 수 있습니다.

위 내용은 SQL에서 쉼표로 구분된 값 필드를 사용하여 테이블을 조인하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿