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
413 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 :

SELECT COUNT(*) AS Count_1 FROM schema.tab1 UNION ALL SELECT COUNT(*) AS Count_2 FROM schema.tab2
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 :

SELECT
  (SELECT COUNT(*) FROM tab1) AS count1,
  (SELECT COUNT(*) FROM tab2) AS count2
FROM dual;
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!

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