Maison > base de données > tutoriel mysql > 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
Libérer: 2024-11-23 13:11:14
original
1005 Les gens l'ont consulté

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';
Copier après la connexion

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';
Copier après la connexion

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';
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal