집 >데이터 베이스 >MySQL 튜토리얼 >JOIN을 사용하여 세 개의 MySQL 테이블의 데이터를 새 테이블로 결합하는 방법은 무엇입니까?
MySQL을 사용하여 여러 테이블의 데이터를 새 테이블로 결합
관계형 데이터베이스로 작업할 때 여러 테이블의 데이터를 결합해야 하는 경우가 많습니다. 새로운 테이블로. 이 질문은 MySQL에서 3방향 JOIN을 사용하여 이를 달성하는 방법을 보여줍니다.
목표: 세 가지 기존 테이블(사람, 분류 및 테이블)의 특정 데이터와 열을 포함하는 새 테이블을 만듭니다. 세부사항).
기존 테이블:
people id last_name first_name email 1 Smith Fred Fred@.. 2 Jones Tom Tom@.. 3 Doe Jane Jane@.. taxonomy id taxonomy 1 age 2 gender 3 height details id person_id detail_id content 1 1 1 36 2 1 2 M 3 1 3 5'10" 4 2 1 29 5 2 2 M 6 2 3 6'3" 7 3 1 27 8 3 2 F 9 3 3 5'8"
원하는 결과(새 테이블):
id last_name first_name email age 1 Smith Fred Fred@.. 36 2 Jones Tom Tom@.. 29 3 Doe Jane Jane@.. 27
3방향 JOIN을 사용하는 솔루션:
새 테이블을 만들려면 다음을 수행해야 합니다. 공통 값을 기반으로 세 개의 기존 테이블을 연결하는 3방향 JOIN:
CREATE TABLE new_table AS SELECT p.*, d.content AS age FROM people AS p JOIN details AS d ON d.person_id = p.id JOIN taxonomy AS t ON t.id = d.detail_id WHERE t.taxonomy = 'age';
이 JOIN은 people 테이블의 데이터를 person_id 열을 기반으로 한 세부 정보 테이블과 결합한 다음 세부 정보 테이블을 추가로 조인합니다. Detail_id 열을 기반으로 하는 분류 테이블을 사용하여 분류가 'age'인 행만 필터링합니다.
대체 접근 방식(여러 속성의 경우):
세부정보 테이블에서 여러 속성(연령, 성별, 키 등)을 포함하려면 각 속성에 대해 별도의 JOIN을 수행해야 합니다.
CREATE TABLE new_table AS SELECT p.*, d1.content AS age, d2.content AS gender, d3.content AS height FROM people AS p JOIN details AS d1 ON d1.person_id = p.id JOIN taxonomy AS t1 ON t1.id = d1.detail_id JOIN details AS d2 ON d2.person_id = p.id JOIN taxonomy AS t2 ON t2.id = d2.detail_id JOIN details AS d3 ON d3.person_id = p.id JOIN taxonomy AS t3 ON t3.id = d3.detail_id WHERE t1.taxonomy = 'age' AND t2.taxonomy = 'gender' AND t3.taxonomy = 'height';
이 접근 방식을 사용하면 세부 정보 테이블에 있는 여러 열의 데이터를 새 테이블에 결합할 수 있습니다.
위 내용은 JOIN을 사용하여 세 개의 MySQL 테이블의 데이터를 새 테이블로 결합하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!