>데이터 베이스 >MySQL 튜토리얼 >JOIN을 사용하여 세 개의 MySQL 테이블의 데이터를 새 테이블로 결합하는 방법은 무엇입니까?

JOIN을 사용하여 세 개의 MySQL 테이블의 데이터를 새 테이블로 결합하는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-12-05 21:32:11496검색

How to Combine Data from Three MySQL Tables into a New Table Using JOINs?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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