Maison  >  Article  >  base de données  >  Comment fusionner les données de plusieurs tables MySQL dans une nouvelle table ?

Comment fusionner les données de plusieurs tables MySQL dans une nouvelle table ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-23 13:11:14941parcourir

How to Merge Data from Multiple MySQL Tables into a New Table?

Fusionner les données de plusieurs tables dans une nouvelle table à l'aide de MySQL

Problème :

Créer une nouvelle table MySQL qui combine des données et des colonnes spécifiques de trois tables existantes : personnes, taxonomie et détails. L'objectif est de créer un tableau qui comprend des attributs sélectionnés tels que le nom, le prénom, l'e-mail et l'âge.

Structure de tableau souhaitée :

ID Last Name First Name Email Age
1 Smith Fred Fred@.. 36
2 Jones Tom Tom@.. 29
3 Doe Jane Jane@.. 27

Solution :

Pour ce faire, effectuez un 3-way JOIN sur les trois 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';

Cette requête combine les données des tables de personnes, de détails et de taxonomie en fonction des identifiants correspondants. Il sélectionne les colonnes souhaitées (id, last_name, first_name, email et age) dans les tables jointes.

Méthode alternative :

Si vous avez déjà créé la new_table table, vous pouvez y insérer des données à l'aide de la requête suivante :

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';

Multiple Attributs :

Pour inclure plusieurs attributs des trois tables, vous pouvez effectuer des JOIN distinctes pour chaque attribut :

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';

En employant plusieurs JOIN, vous pouvez fusionner des données et des colonnes de divers tableaux dans un nouveau tableau complet.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn