Rumah > pangkalan data > tutorial mysql > Bagaimanakah Saya Boleh Menggabungkan Dua Jadual dengan Struktur Serupa tetapi Kategori Berbeza ke dalam Jadual Output Tunggal?

Bagaimanakah Saya Boleh Menggabungkan Dua Jadual dengan Struktur Serupa tetapi Kategori Berbeza ke dalam Jadual Output Tunggal?

Barbara Streisand
Lepaskan: 2024-12-22 21:31:17
asal
996 orang telah melayarinya

How Can I Combine Two Tables with Similar Structures but Different Categories into a Single Output Table?

Menggabungkan Dua Jadual untuk Output Tunggal

Operasi pangkalan data selalunya memerlukan penggabungan data daripada berbilang sumber kepada output yang padu. Cabaran biasa ialah menggabungkan jadual dengan struktur yang serupa tetapi kategori yang berbeza. Pertimbangkan masalah berikut:

Anda mempunyai dua jadual, "KnownHours" dan "UnknownHours," dengan lajur termasuk ChargeNum (pengecam unik), CategoryID (tugasan kategori), Bulan (tarikh) dan Jam ( nilai sebenar). Tugasnya adalah untuk menggabungkan jadual ini, mengabaikan lajur Bulan, ke dalam jadual data tunggal, mengumpulkan Jam mengikut ChargeNum dan CategoryID.

Output yang dijangkakan ialah:

ChargeNum    CategoryID     Hours
111111       1              90
111111       2              50
111111       Unknown        110.5
222222       1              40
222222       Unknown        25.5
Salin selepas log masuk

Untuk mencapai ini , kita boleh menggunakan operator UNION, yang menggabungkan hasil dua pertanyaan. Untuk masalah ini, kami akan membina dua pertanyaan:

Pertanyaan 1:

SELECT ChargeNum, CategoryID, SUM(Hours)
FROM KnownHours
GROUP BY ChargeNum, CategoryID
Salin selepas log masuk

Pertanyaan ini mendapatkan semula ChargeNum, CategoryID dan jumlah Jam untuk setiap gabungan daripada jadual "KnownHours".

Pertanyaan 2:

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

Pertanyaan ini mendapatkan semula ChargeNum dan jumlah Jam untuk setiap entri dalam jadual "UnknownHours", memperuntukkan 'Unknown' sebagai CategoryID.

Menggabungkan kedua-duanya pertanyaan menggunakan UNION ALL menghasilkan output yang diingini:

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

The UNION SEMUA operator menggabungkan hasil tanpa mengalih keluar pendua, memberikan paparan lengkap data gabungan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggabungkan Dua Jadual dengan Struktur Serupa tetapi Kategori Berbeza ke dalam Jadual Output 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