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
Susan Sarandonoriginal
2024-11-23 02:03:17934parcourir

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

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

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

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