Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Menghapuskan Baris Pendua Apabila Memilih daripada Berbilang Jadual dalam MySQL?
Apabila memilih daripada berbilang jadual, adalah perkara biasa untuk menemui baris pendua kerana nilai yang sepadan dalam lajur pemautan. Dalam senario ini, anda mungkin perlu menghapuskan pendua ini sambil mengekalkan maklumat tertentu.
Pernyataan Masalah:
Pertanyaan berikut mendapatkan maklumat daripada "minuman" dan "foto_minuman " meja:
SELECT name, price, photo FROM drinks, drinks_photos WHERE drinks.id = drinks_id
Walau bagaimanapun, untuk setiap minuman, berbilang foto entri muncul, menghasilkan baris pendua. Matlamatnya adalah untuk menghapuskan pendua ini dan mendapatkan baris unik yang mengandungi nama, harga dan semua foto yang dikaitkan dengan setiap minuman.
Penyelesaian:
Untuk menangani isu ini dan mengekalkan integriti data, kami boleh menggunakan fungsi pengelompokan dan agregat dalam pertanyaan kami.
Pengumpulan dan Fungsi Agregat:
Dalam kes ini, kita boleh mengumpulkan mengikut lajur "drinks_id" untuk mendapatkan baris unik bagi setiap minuman.
Pertanyaan SQL:
Untuk mendapatkan satu baris bagi setiap minuman dan mengekalkan semua entri foto, kami boleh menggunakan yang berikut pertanyaan:
SELECT name, price, GROUP_CONCAT(photo SEPARATOR ',') AS all_photos FROM drinks, drinks_photos WHERE drinks.id = drinks_id GROUP BY drinks_id
Keputusan:
Pertanyaan ini mengembalikan hasil berikut:
name | price | all_photos |
---|---|---|
fanta | 5 | ./images/fanta-1.jpg,./images/fanta-2.jpg,./images/fanta-3.jpg |
dew | 4 | ./images/dew-1.jpg,./images/dew-2.jpg |
Penjelasan:
Nota:
Atas ialah kandungan terperinci Bagaimana untuk Menghapuskan Baris Pendua Apabila Memilih daripada Berbilang Jadual dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!