MySQL을 사용하여 여러 테이블의 데이터를 새 테이블에 병합
문제:
만들기 세 가지 기존 테이블(사람, 분류, 세부정보)의 특정 데이터와 열을 결합한 새로운 MySQL 테이블입니다. 목표는 성, 이름, 이메일, 나이 등 선택된 속성을 포함하는 테이블을 만드는 것입니다.
원하는 테이블 구조:
ID | Last Name | First Name | Age | |
---|---|---|---|---|
1 | Smith | Fred | Fred@.. | 36 |
2 | Jones | Tom | Tom@.. | 29 |
3 | Doe | Jane | Jane@.. | 27 |
해결책:
이를 달성하려면 세 가지 노드에서 3방향 JOIN을 수행하세요. tables:
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';
이 쿼리는 일치하는 ID를 기반으로 사람, 세부 정보 및 분류 테이블의 데이터를 결합합니다. 조인된 테이블에서 원하는 열(id, last_name, first_name, email 및 age)을 선택합니다.
대체 방법:
new_table을 이미 생성한 경우 테이블에 다음 쿼리를 사용하여 데이터를 삽입할 수 있습니다.
INSERT INTO new_table (id, last_name, first_name, email, age) SELECT p.id, p.last_name, p.first_name, p.email, 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을 수행할 수 있습니다.
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!