>  기사  >  데이터 베이스  >  MySQL JSON 필드를 테이블 조인에 사용할 수 있습니까?

MySQL JSON 필드를 테이블 조인에 사용할 수 있습니까?

Susan Sarandon
Susan Sarandon원래의
2024-10-31 23:51:28108검색

 Can MySQL JSON Fields Be Used for Table Joining?

테이블 조인을 위해 MySQL JSON 필드 사용

데이터베이스 관리에서는 포괄적인 통찰력을 얻기 위해 여러 테이블의 데이터를 조인해야 하는 경우가 많습니다. MySQL로 작업할 때 식별자 목록을 저장하는 JSON 필드가 있는 상황에 직면할 수 있습니다. 이 게시물에서는 이러한 JSON 필드에서 작업을 실행하고 이를 SQL 쿼리에 활용하는 것이 가능한지에 대한 질문을 다룹니다.

문제

다음과 같은 가상 시나리오를 고려해보세요. 사용자 ID, 사용자 이름 및 그룹 ID 목록을 저장하는 "user_groups"라는 JSON 필드에 대한 열이 있는 "user" 테이블이 있습니다. 그룹 ID 및 그룹 이름에 대한 열이 있는 "user_group" 테이블도 있습니다. 목표는 사용자 및 해당 그룹에 대한 정보를 검색하는 쿼리를 구성하여 다음 구조의 테이블을 생성하는 것입니다.

user_id | user_name | user_group_id | group_name

원하는 결과는 다음과 같습니다.

101     | John      | 1             | Group A
101     | John      | 3             | Group C

해결책

원하는 결과를 얻으려면 다음 쿼리를 사용할 수 있습니다.

SELECT 
       u.user_id, 
       u.user_name, 
       g.user_group_id,
       g.group_name
   FROM user u
   LEFT JOIN user_group g on JSON_CONTAINS(u.user_groups, CAST(g.user_group_id as JSON), '$')

"JSON_CONTAINS" 함수는 사용자 그룹 ID가 JSON 필드 "user_groups"에 존재합니다. 이 기능을 활용하면 JSON 필드에 그룹 ID가 있는지 여부에 따라 "user" 및 "user_group" 테이블을 조인할 수 있습니다. 이를 통해 사용자 및 관련 그룹에 대한 정보를 검색할 수 있습니다.

위 내용은 MySQL JSON 필드를 테이블 조인에 사용할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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