Combinaison de requêtes SELECT pour une analyse complète des tâches
Les requêtes de base de données nécessitent souvent de combiner des données provenant de plusieurs sources pour obtenir une image complète. Cela implique de joindre les résultats de plusieurs SELECT
instructions, une technique cruciale dans de nombreux contextes de programmation.
Considérons un scénario impliquant une base de données de tâches avec des délais et des missions individuelles. L'objectif est de générer un rapport montrant chaque individu, son nombre total de tâches et le nombre de tâches en retard.
Ceci peut être réalisé en utilisant deux SELECT
requêtes distinctes : une pour compter les tâches par individu et une autre pour compter les tâches en retard (où Age
dépasse le délai prédéfini PALT
). Pour consolider ces informations, un LEFT JOIN
est utilisé. Cela garantit que tous les individus de la première requête sont inclus, avec le nombre de tâches en retard correspondant à celui de la deuxième requête. La jointure est basée sur la colonne ks
(identifiant individuel).
La requête combinée est la suivante :
<code class="language-sql">SELECT t1.ks, t1.[# Tasks], COALESCE(t2.[# Late], 0) AS [# Late] FROM (SELECT ks, COUNT(*) AS '# Tasks' FROM Table GROUP BY ks) t1 LEFT JOIN (SELECT ks, COUNT(*) AS '# Late' FROM Table WHERE Age > Palt GROUP BY ks) t2 ON t1.ks = t2.ks;</code>
Le résultat est un tableau répertoriant les ks
de chaque individu, leur nombre total de tâches (# Tasks
) et le nombre de tâches en retard (# Late
). COALESCE
gère les cas où un individu n'a aucune tâche en retard, en attribuant une valeur 0
à # Late
. Cela fournit un résumé complet et précis.
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!