Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Mengumpul Berbilang Lajur dengan Cekap daripada Jadual Berbeza dalam Pernyataan MySQL Tunggal?

Bagaimana untuk Mengumpul Berbilang Lajur dengan Cekap daripada Jadual Berbeza dalam Pernyataan MySQL Tunggal?

Susan Sarandon
Lepaskan: 2025-01-21 11:12:10
asal
592 orang telah melayarinya

How to Efficiently Aggregate Multiple Columns from Different Tables in a Single MySQL Statement?

Menyatukan Data daripada Berbilang Jadual dengan Satu Pertanyaan MySQL

Pada mulanya, menggunakan berbilang subkueri untuk mengagregat data daripada pelbagai jadual menghasilkan keputusan yang tidak tepat, dengan hanya lajur pertama menunjukkan nilai yang betul. Untuk menyelesaikan masalah ini, kaedah yang lebih cekap diperlukan.

Penyelesaian paling berkesan melibatkan pengagregatan bersyarat dalam satu pertanyaan jadual. Pendekatan ini mengelakkan pengehadan berbilang subkueri dan menghasilkan keputusan yang tepat. Pertanyaan berikut menunjukkan teknik ini:

<code class="language-sql">SELECT DAY_IN, COUNT(*) AS arr,
       SUM(IF(PAT_STATUS LIKE '%ong%', 1, 0)) AS ONG1,
       SUM(IF(PAT_STATUS LIKE '%rtde%', 1, 0)) AS RTED,
       SUM(IF(PAT_STATUS LIKE '%pol%', 1, 0)) AS POL1,
       SUM(IF(PAT_STATUS LIKE '%para%', 1, 0)) AS para
FROM t_hospital
WHERE DAY_IN BETWEEN @start_check AND @finish_check
  AND RES_DATE BETWEEN @start_res AND @finish_res
  AND ID_daily_hos = @daily_hos
GROUP BY DAY_IN</code>
Salin selepas log masuk

Pertanyaan ini menggunakan fungsi IF() untuk mengira kejadian secara bersyarat berdasarkan lajur PAT_STATUS. Setiap baris dikira sekali sahaja, menyumbang kepada satu lajur agregat. Fungsi SUM() kemudian menjumlahkan kiraan bersyarat ini untuk setiap DAY_IN.

Pendekatan pertanyaan tunggal ini menyediakan kaedah yang ringkas dan tepat untuk mengagregatkan data daripada lajur yang berbeza dalam jadual yang sama, dengan itu menyelesaikan isu keputusan tidak tepat yang diperoleh daripada kaedah berbilang subkueri asal.

Atas ialah kandungan terperinci Bagaimana untuk Mengumpul Berbilang Lajur dengan Cekap daripada Jadual Berbeza dalam Pernyataan MySQL Tunggal?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan