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>
UNION ALL
échoueUne 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>
Cela produit des lignes distinctes pour chaque décompte, et non la sortie sur une seule ligne dont nous avons besoin.
DUAL
TableLa 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>
Répartition :
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.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!