Maison > base de données > tutoriel mysql > Comment récupérer le nombre de lignes de plusieurs tables dans une seule ligne SQL ?

Comment récupérer le nombre de lignes de plusieurs tables dans une seule ligne SQL ?

Patricia Arquette
Libérer: 2025-01-11 13:56:44
original
249 Les gens l'ont consulté

How to Retrieve Row Counts from Multiple Tables in a Single SQL Row?

Récupérer efficacement le nombre de lignes de plusieurs tables en SQL

Obtenir le nombre de lignes à partir de plusieurs tables SQL et les afficher sur une seule ligne peut être délicat. Cet exemple montre comment récupérer les décomptes de tab1 et tab2, en présentant les résultats comme :

<code>Count_1   Count_2
123       456</code>
Copier après la connexion

Pourquoi UNION ALL échoue

Une approche courante, mais imparfaite, utilise UNION ALL :

<code class="language-sql">select count(*) Count_1 from schema.tab1 union all select count(*) Count_2 from schema.tab2</code>
Copier après la connexion

Cela produit des lignes distinctes pour chaque décompte, et non la sortie sur une seule ligne dont nous avons besoin.

La solution : les sous-requêtes et la DUALTable

La solution exploite les sous-requêtes et la table DUAL (une table virtuelle fournissant une seule ligne). Voici la bonne requête :

<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

Répartition :

  • Extérieur SELECT : Cela crée une seule ligne pour contenir nos résultats (count1 et count2).
  • DUAL Tableau : Fournit cette seule rangée avec laquelle le SELECT extérieur peut travailler.
  • Sous-requêtes : Calculez indépendamment le nombre de lignes pour tab1 et tab2.
  • AS Clauses : Attribuez des noms significatifs (count1, count2) aux colonnes de résultats.

Cette méthode consolide efficacement les décomptes des deux tableaux en une seule ligne soigneusement formatée.

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