ホームページ > データベース > mysql チュートリアル > 単一の SQL 行で複数のテーブルから行数を取得するにはどうすればよいですか?

単一の SQL 行で複数のテーブルから行数を取得するにはどうすればよいですか?

Patricia Arquette
リリース: 2025-01-11 13:56:44
オリジナル
249 人が閲覧しました

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

SQL で複数のテーブルから行数を効率的に取得する

複数の SQL テーブルから行数を取得し、それらを 1 行に表示するのは難しい場合があります。 この例では、tab1tab2 からカウントを取得し、結果を次のように表示する方法を示します。

<code>Count_1   Count_2
123       456</code>
ログイン後にコピー
なぜ

が失敗するのか UNION ALL

一般的ですが欠陥のあるアプローチでは、

:UNION ALL を使用します。

<code class="language-sql">select count(*) Count_1 from schema.tab1 union all select count(*) Count_2 from schema.tab2</code>
ログイン後にコピー
これにより、必要な単一行の出力ではなく、カウントごとに個別の行が生成されます。

解決策: サブクエリと

テーブルDUAL

このソリューションでは、サブクエリと

テーブル (単一行を提供する仮想テーブル) を利用します。 正しいクエリは次のとおりです:DUAL

<code class="language-sql">SELECT  (
        SELECT COUNT(*)
        FROM   tab1
        ) AS count1,
        (
        SELECT COUNT(*)
        FROM   tab2
        ) AS count2
FROM    dual;</code>
ログイン後にコピー
内訳:

  • 外側 :SELECT これにより、結果 (count1) を保持する単一の行が作成されます。count2
  • テーブル:DUAL 外側の が操作する単一の行を提供します。SELECT
  • サブクエリ: tab1 の行数を個別に計算します。tab2
  • 句:AS 意味のある名前 (count1) を結果列に割り当てます。count2
この方法では、両方のテーブルのカウントが 1 つのきちんとフォーマットされた行に効率的に統合されます。

以上が単一の SQL 行で複数のテーブルから行数を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート