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!