Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Memilih Data dengan Cekap daripada Berbilang Jadual MySQL dengan Struktur Yang Sama?
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'
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
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')
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`
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!