Panduan ini menunjukkan cara untuk memilih gabungan unik berbilang lajur dalam pangkalan data SQL dengan cekap. Keperluan timbul apabila anda memerlukan baris yang berbeza berdasarkan gabungan nilai tertentu.
Kaedah 1: Memanfaatkan SELECT DISTINCT
Pendekatan paling mudah menggunakan kata kunci DISTINCT
. Ini secara langsung hanya memilih baris unik berdasarkan lajur yang ditentukan.
Sebagai contoh, untuk mendapatkan gabungan unik saleprice
dan saledate
daripada jadual sales
:
SELECT DISTINCT saleprice, saledate FROM sales;
Kaedah 2: Menggabungkan DISTINCT
dengan GROUP BY
Walaupun DISTINCT
sahaja sudah memadai untuk pemilihan baris unik yang ringkas, menggabungkannya dengan GROUP BY
menawarkan lebih kawalan dan fleksibiliti, terutamanya apabila manipulasi data lanjut diperlukan. GROUP BY
mengumpulkan baris berdasarkan lajur yang ditentukan dan DISTINCT
memastikan hanya satu baris setiap kumpulan dikembalikan. Kaedah ini amat berguna untuk senario yang lebih kompleks.
Kaedah 3: Menggunakan Subkueri untuk Operasi Lanjutan
Subqueries menyediakan mekanisme yang berkuasa untuk memilih gabungan unik, terutamanya apabila anda perlu melakukan operasi tambahan pada data terkumpul sebelum mengemas kini atau menapis.
Sebagai contoh, pertimbangkan untuk mengemas kini lajur status
untuk jualan unik berdasarkan saleprice
dan saledate
:
UPDATE sales SET status = 'ACTIVE' WHERE id IN ( SELECT id FROM sales S INNER JOIN ( SELECT saleprice, saledate FROM sales GROUP BY saleprice, saledate HAVING COUNT(*) = 1 ) T ON S.saleprice = T.saleprice AND S.saledate = T.saledate );
Subkueri pertanyaan ini mengenal pasti gabungan saleprice
dan saledate
unik menggunakan GROUP BY
dan HAVING COUNT(*) = 1
. Pertanyaan utama kemudian mengemas kini status
rekod jualan yang sepadan kepada 'AKTIF'. Pendekatan ini membolehkan manipulasi dan penapisan data yang fleksibel sebelum mengemas kini jadual. Klausa HAVING
memastikan hanya gabungan yang benar-benar unik (yang muncul sekali sahaja) dipertimbangkan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memilih Gabungan Unik Berbilang Lajur dalam SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!