Maison > base de données > tutoriel mysql > Comment combiner les données de trois tables MySQL dans une nouvelle table ?

Comment combiner les données de trois tables MySQL dans une nouvelle table ?

Susan Sarandon
Libérer: 2024-11-23 02:03:17
original
996 Les gens l'ont consulté

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

mySQL : Création d'une nouvelle table à partir des données et des colonnes de trois tables

Question :

Comment puis-je créer une nouvelle table combinant les données sélectionnées de trois tables existantes, y compris les champs nom_nom, prénom, email et âge du personnes, détails et tableaux de taxonomie ?

Réponse :

Pour y parvenir, vous pouvez utiliser un JOIN à 3 voies.

Création d'une nouvelle table avec jointure :

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 créera une nouvelle table nommée new_table qui comprend les colonnes last_name, first_name, email et age. Dans la table des détails, le champ de contenu est utilisé pour stocker les informations sur l'âge.

Insertion de données dans une table existante :

Si vous avez déjà créé la new_table, vous peut 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

Joining for Multiple Attributs :

Pour récupérer plusieurs attributs (par exemple, âge, sexe, taille) des autres tables, vous devrez effectuer des jointures supplémentaires :

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 AND d1.taxonomy_id = (SELECT id FROM taxonomy WHERE taxonomy = 'age')
JOIN details AS d2 ON d2.person_id = p.id AND d2.taxonomy_id = (SELECT id FROM taxonomy WHERE taxonomy = 'gender')
JOIN details AS d3 ON d3.person_id = p.id AND d3.taxonomy_id = (SELECT id FROM taxonomy WHERE taxonomy = 'height');
Copier après la connexion

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