Maison >base de données >tutoriel mysql >Comment puis-je combiner plusieurs tables avec différentes structures en une seule table de sortie unifiée à l'aide de SQL ?

Comment puis-je combiner plusieurs tables avec différentes structures en une seule table de sortie unifiée à l'aide de SQL ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-22 02:00:12370parcourir

How Can I Combine Multiple Tables with Different Structures into a Single Unified Output Table Using SQL?

Combinaison de tableaux pour une sortie unifiée

Les tableaux peuvent être fusionnés pour obtenir divers résultats de manipulation de données. Une tâche courante consiste à consolider les données de plusieurs tables en une seule table pour une analyse plus approfondie. Considérez le scénario suivant :

Vous disposez de deux tables, KnownHours et UnknownHours, contenant des données horaires associées aux numéros de facturation. Votre objectif est de regrouper ces heures, quel que soit le mois, dans un seul tableau au format suivant :

ChargeNum    CategoryID     Hours
111111       1              90
111111       2              50
111111       Unknown        110.5
222222       1              40
222222       Unknown        25.5

Dans ce scénario, vous devez regrouper les heures pour chaque combinaison unique de ChargeNum et CategoryID (ou "Inconnu" pour UnknownHours). Pour y parvenir, vous pouvez exploiter l'opérateur UNION :

SELECT ChargeNum, CategoryID, SUM(Hours)
FROM KnownHours
GROUP BY ChargeNum, CategoryID
UNION ALL
SELECT ChargeNum, 'Unknown' AS CategoryID, SUM(Hours)
FROM UnknownHours
GROUP BY ChargeNum

Cette instruction SQL combine les résultats de deux requêtes. La première requête regroupe et additionne les heures de la table KnownHours par ChargeNum et CategoryID. La deuxième requête regroupe et additionne les heures de la table UnknownHours par ChargeNum et attribue le CategoryID 'Unknown'.

En combinant les résultats à l'aide de UNION ALL, la table finale inclut les lignes des deux requêtes. La fonction d'agrégation SUM() garantit que les heures sont accumulées pour faire correspondre les ChargeNums et les CategoryID.

Grâce à cette technique, vous pouvez fusionner efficacement des tables pour créer une vue consolidée de vos données.

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