ホームページ > データベース > mysql チュートリアル > 複数のテーブルからの COUNT(*) の結果を 1 つの行に効率的に結合するにはどうすればよいですか?

複数のテーブルからの COUNT(*) の結果を 1 つの行に効率的に結合するにはどうすればよいですか?

Linda Hamilton
リリース: 2025-01-11 13:52:42
オリジナル
360 人が閲覧しました

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

複数のテーブルからの COUNT(*) 結果の結合: UNION とデカルト積の比較

複数のテーブルにわたるデータを分析するには、多くの場合、結果を結合する必要があります。 頻繁に行われるタスクは、異なるテーブルから同時に行数を取得することです。

tab1tab2 の行数が必要だとします。 UNION クエリが解決策のように見えるかもしれません:

<code class="language-sql">SELECT COUNT(*) AS Count_1 FROM schema.tab1 UNION ALL SELECT COUNT(*) AS Count_2 FROM schema.tab2</code>
ログイン後にコピー

ただし、これにより、Count_1Count_2 が別々の行に含まれる垂直方向の結果セットが生成されます。より整理された単一行の出力については、デカルト積のアプローチを検討してください。

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

このクエリの仕組みは次のとおりです:

  • dual テーブル (多くのデータベース システムではダミー テーブル) は 1 行を提供し、結合された結果のフレームワークとして機能します。
  • サブクエリは、各テーブルの COUNT(*) を個別に計算します。
  • これらのサブクエリの結果には count1 および count2 というエイリアスが付けられ、2 列、1 行の出力が作成されます。

このメソッドは、両方のテーブルの行数を単一の構造化された行に効率的に統合し、望ましい結果をもたらします。

<code>count1 | count2
-------+-------
  123  |   456</code>
ログイン後にコピー

以上が複数のテーブルからの COUNT(*) の結果を 1 つの行に効率的に結合するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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