COUNT(*)
des résultats de plusieurs tables : une comparaison de l'UNION et du produit cartésienL'analyse des données sur plusieurs tables nécessite souvent de combiner les résultats. Une tâche fréquente consiste à obtenir le nombre de lignes simultanées à partir de différentes tables.
Disons que vous avez besoin du nombre de lignes de tab1
et tab2
. Une requête UNION
pourrait sembler être la solution :
<code class="language-sql">SELECT COUNT(*) AS Count_1 FROM schema.tab1 UNION ALL SELECT COUNT(*) AS Count_2 FROM schema.tab2</code>
Cependant, cela produit un ensemble de résultats vertical, avec Count_1
et Count_2
dans des lignes séparées. Pour une sortie plus organisée sur une seule ligne, envisagez une approche produit cartésienne :
<code class="language-sql">SELECT (SELECT COUNT(*) FROM tab1) AS count1, (SELECT COUNT(*) FROM tab2) AS count2 FROM dual;</code>
Voici comment fonctionne cette requête :
dual
(une table factice dans de nombreux systèmes de bases de données) fournit une seule ligne, agissant comme un cadre pour les résultats combinés.COUNT(*)
pour chaque table.count1
et count2
, créant une sortie à deux colonnes et à une seule ligne.Cette méthode consolide efficacement le nombre de lignes des deux tables en une seule ligne structurée, donnant le résultat souhaité :
<code>count1 | count2 -------+------- 123 | 456</code>
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!