Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mendapatkan Kiraan Berasingan daripada Berbilang Jadual dalam Satu Pertanyaan SQL?

Bagaimana untuk Mendapatkan Kiraan Berasingan daripada Berbilang Jadual dalam Satu Pertanyaan SQL?

DDD
DDDasal
2025-01-11 13:47:43914semak imbas

How to Get Separate Counts from Multiple Tables in a Single SQL Query?

*PILIH KIRA()**

DARI BERBILANG JADUAL

Apabila bekerja dengan jadual pangkalan data, kadangkala perlu mendapatkan kiraan daripada berbilang jadual dan memaparkan hasilnya sebagai lajur yang berasingan. Cabaran biasa timbul apabila cuba mendapatkan kiraan daripada dua jadual berbeza (tab1 dan tab2).

Menggunakan UNION ALL yang anda nyatakan adalah kaedah biasa. Walau bagaimanapun, kaedah ini menghasilkan set hasil dengan hanya satu lajur, dengan kiraan dipaparkan satu demi satu.

Untuk mengatasi had ini dan memaparkan kiraan dalam lajur yang berasingan, pendekatan SQL yang berbeza diperlukan:

<code class="language-sql">SELECT  (
        SELECT COUNT(*)
        FROM   tab1
        ) AS count1,
        (
        SELECT COUNT(*)
        FROM   tab2
        ) AS count2
FROM    dual</code>

Dalam pertanyaan ini, pernyataan SELECT mengandungi dua subquery:

  • Subkueri pertama (disertakan dalam kurungan) mendapat COUNT(*) daripada tab1 dan menetapkannya kepada alias count1.
  • Subkueri kedua (juga disertakan dalam kurungan) melakukan perkara yang sama untuk tab2, tetapi menetapkannya kepada count2.

Klausa FROM menggunakan jadual dwi, ​​iaitu jadual maya dalam pangkalan data Oracle Ia sentiasa mengembalikan satu baris data dengan hanya satu lajur. Ini adalah perlu untuk mencipta struktur set hasil (serupa dengan cantuman silang) untuk menampung kiraan daripada kedua-dua subkueri.

Oleh itu, pertanyaan ini menghasilkan output dengan dua lajur: count1 dan count2, masing-masing mengandungi kiraan daripada tab1 dan tab2. Pendekatan ini memastikan pembentangan nilai COUNT(*) yang jelas dan teratur daripada dua jadual berbeza.

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Kiraan Berasingan daripada Berbilang Jadual dalam Satu Pertanyaan SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn