Maison > base de données > tutoriel mysql > Comment puis-je combiner efficacement les résultats COUNT(*) de plusieurs tables en une seule ligne ?

Comment puis-je combiner efficacement les résultats COUNT(*) de plusieurs tables en une seule ligne ?

Linda Hamilton
Libérer: 2025-01-11 13:52:42
original
360 Les gens l'ont consulté

How Can I Efficiently Combine COUNT(*) Results from Multiple Tables into a Single Row?

Combinaison COUNT(*) des résultats de plusieurs tables : une comparaison de l'UNION et du produit cartésien

L'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>
Copier après la connexion

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>
Copier après la connexion

Voici comment fonctionne cette requête :

  • La table 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.
  • Les sous-requêtes calculent indépendamment le COUNT(*) pour chaque table.
  • Ces résultats de sous-requête sont alias 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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal