Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Memilih Data dengan Cekap daripada Berbilang Jadual MySQL dengan Struktur Yang Sama?

Bagaimana untuk Memilih Data dengan Cekap daripada Berbilang Jadual MySQL dengan Struktur Yang Sama?

Barbara Streisand
Lepaskan: 2025-01-04 12:10:35
asal
991 orang telah melayarinya

How to Efficiently Select Data from Multiple MySQL Tables with Identical Structures?

MySQL: Memilih Data daripada Berbilang Jadual dengan Struktur Serupa tetapi Data Berbeza

Apabila menguruskan set data yang besar, selalunya perlu menyimpan data dalam berbilang jadual dengan skema yang sama untuk tujuan penyetempatan atau pembahagian. Walau bagaimanapun, mengekstrak data daripada berbilang jadual sambil mengekalkan susunan isihan tertentu boleh menimbulkan cabaran.

Masalah: Ralat Lajur Ambiguous dalam Klausa WHERE

Pertimbangkan pernyataan MySQL berikut:

SELECT * from us_music, de_music where `genre` = 'punk'
Salin selepas log masuk

Pertanyaan ini cuba untuk menggabungkan data daripada dua jadual, us_music dan de_music, berdasarkan lajur genre, yang wujud dalam kedua-dua jadual. Walau bagaimanapun, MySQL mengembalikan ralat berikut:

#1052 - Column 'genre' in where clause is ambiguous
Salin selepas log masuk

Penyelesaian: Menggunakan Klausa UNION

Untuk menyelesaikan kekaburan, anda boleh menggunakan klausa UNION. Klausa UNION menggabungkan hasil penyataan SELECT berbilang ke dalam set hasil tunggal. Begini cara untuk menggunakannya dalam kes ini:

(SELECT * from us_music where `genre` = 'punk')
UNION
(SELECT * from de_music where `genre` = 'punk')
Salin selepas log masuk

Pertanyaan ini mula-mula memilih data daripada us_music dengan genre sama dengan 'punk', kemudian ia melakukan operasi yang sama pada de_music. Keputusan kedua-dua pernyataan SELECT kemudiannya digabungkan menjadi satu set hasil tunggal.

Isih Hasil Gabungan

Setelah data digabungkan, anda boleh menentukan susunan isihan mengikut menambah klausa ORDER BY selepas pernyataan UNION:

(SELECT * from us_music where `genre` = 'punk')
UNION
(SELECT * from de_music where `genre` = 'punk')
ORDER BY `band_name`
Salin selepas log masuk

Pertanyaan ini akan menggabungkan data daripada kedua-dua jadual dan mengisih hasil berdasarkan lajur nama_jalur.

Atas ialah kandungan terperinci Bagaimana untuk Memilih Data dengan Cekap daripada Berbilang Jadual MySQL dengan Struktur Yang Sama?. 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