COUNT(*)
Hasil daripada Pelbagai Jadual: Perbandingan UNION dan Produk CartesianMenganalisis data merentas berbilang jadual selalunya memerlukan hasil gabungan. Tugas yang kerap dilakukan ialah mendapatkan kiraan baris serentak daripada jadual yang berbeza.
Katakan anda memerlukan kiraan baris daripada tab1
dan tab2
. Pertanyaan UNION
mungkin kelihatan seperti penyelesaiannya:
<code class="language-sql">SELECT COUNT(*) AS Count_1 FROM schema.tab1 UNION ALL SELECT COUNT(*) AS Count_2 FROM schema.tab2</code>
Walau bagaimanapun, ini menghasilkan set hasil menegak, dengan Count_1
dan Count_2
dalam baris yang berasingan. Untuk keluaran satu baris yang lebih teratur, pertimbangkan pendekatan produk Cartesian:
<code class="language-sql">SELECT (SELECT COUNT(*) FROM tab1) AS count1, (SELECT COUNT(*) FROM tab2) AS count2 FROM dual;</code>
Begini cara pertanyaan ini berfungsi:
dual
(jadual dummy dalam banyak sistem pangkalan data) menyediakan satu baris, bertindak sebagai rangka kerja untuk hasil gabungan.COUNT(*)
untuk setiap jadual.count1
dan count2
, menghasilkan output dua lajur, satu baris.Kaedah ini menggabungkan kiraan baris dengan cekap daripada kedua-dua jadual menjadi satu baris berstruktur, menghasilkan hasil yang diingini:
<code>count1 | count2 -------+------- 123 | 456</code>
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggabungkan COUNT(*) Keputusan dengan Cekap daripada Berbilang Jadual ke dalam Satu Baris?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!