ホームページ >データベース >mysql チュートリアル >単一の SQL クエリで複数のテーブルから個別のカウントを取得するにはどうすればよいですか?
*SELECT COUNT()**
複数のテーブルからデータベース テーブルを操作する場合、複数のテーブルからカウントを取得し、結果を別の列として表示する必要がある場合があります。 2 つの異なるテーブル (tab1 と tab2) からカウントを取得しようとすると、一般的な問題が発生します。
あなたが言及した UNION ALL を使用するのが一般的な方法です。ただし、この方法では、列が 1 つだけ含まれる結果セットが生成され、カウントが次々に表示されます。
この制限を克服してカウントを別の列に表示するには、別の SQL アプローチが必要です。
<code class="language-sql">SELECT ( SELECT COUNT(*) FROM tab1 ) AS count1, ( SELECT COUNT(*) FROM tab2 ) AS count2 FROM dual</code>
このクエリでは、SELECT ステートメントに 2 つのサブクエリが含まれています:
FROM 句は、Oracle データベースの仮想テーブルであるデュアル テーブルを使用し、常に 1 つの列のみを含む 1 行のデータを返します。これは、両方のサブクエリからのカウントに対応する結果セット構造 (クロス結合に似た) を作成するために必要です。
したがって、このクエリは、それぞれ tab1 と tab2 のカウントを含む count1 と count2 の 2 つの列を持つ出力を生成します。このアプローチにより、2 つの異なるテーブルの COUNT(*) 値が明確かつ順序立てて表示されます。
以上が単一の SQL クエリで複数のテーブルから個別のカウントを取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。