Rumah > pangkalan data > tutorial mysql > Bagaimanakah Operasi UNION SQL Boleh Menyatukan Jam daripada Berbilang Jadual?

Bagaimanakah Operasi UNION SQL Boleh Menyatukan Jam daripada Berbilang Jadual?

Susan Sarandon
Lepaskan: 2025-01-04 15:05:41
asal
185 orang telah melayarinya

How Can SQL's UNION Operation Consolidate Hours from Multiple Tables?

Menggabungkan Jadual untuk Output Disatukan

Dalam bidang manipulasi data, menggabungkan berbilang jadual menjadi satu output padu adalah cabaran biasa. Pertimbangkan senario di mana anda mempunyai dua jadual, KnownHours dan UnknownHours, setiap satu mengandungi nombor caj, kategori, bulan dan jam bekerja. Matlamatnya ialah untuk mengagregat waktu, tanpa mengambil kira bulan, untuk mendapatkan pandangan yang disatukan.

Untuk mencapai ini, anda boleh memanfaatkan kuasa operasi UNION SQL. Ini membolehkan anda menggabungkan hasil berbilang pertanyaan ke dalam satu set data. Dalam kes khusus ini, anda perlu mengumpulkan jam mengikut nombor caj dan kategori, menggunakan fungsi agregat SUM().

Pertanyaan SQL untuk mencapai ini adalah seperti berikut:

SELECT ChargeNum, CategoryID, SUM(Hours)
FROM KnownHours
GROUP BY ChargeNum, CategoryID
UNION ALL
SELECT ChargeNum, 'Unknown' AS CategoryID, SUM(Hours)
FROM UnknownHours
GROUP BY ChargeNum;
Salin selepas log masuk

Di sini, kata kunci UNION ALL menggabungkan hasil dua pertanyaan berasingan. Pertanyaan pertama mendapatkan jam dari jadual KnownHours, mengumpulkannya mengikut nombor caj dan kategori; pertanyaan kedua mendapatkan semula jam daripada jadual UnknownHours, menganggapnya sebagai tergolong dalam kategori 'Tidak diketahui'.

Dengan menggunakan UNION ALL, langkah semakan pendua diabaikan, menghasilkan prestasi yang lebih baik berbanding menggunakan UNION sahaja.

Hasil pertanyaan ini ialah jadual disatukan yang menyediakan jumlah jam bekerja untuk setiap nombor caj dan kategori, tanpa mengira bulan di mana ia berlaku.

Atas ialah kandungan terperinci Bagaimanakah Operasi UNION SQL Boleh Menyatukan Jam daripada Berbilang Jadual?. 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