Mengenalpasti Pendua dalam Nilai Lajur Tanpa DISTINCT
Dalam pangkalan data, mungkin perlu mengenal pasti baris yang nilai lajur tertentu diulang. Tidak seperti kata kunci DISTINCT, yang hanya mendapatkan semula nilai unik, tugasan yang sedang dijalankan memerlukan pemilihan semua baris yang nilai lajurnya tidak mempunyai kekhususan.
Satu pendekatan untuk menangani keperluan ini ialah menggunakan subkueri dalam klausa WHERE. Pertanyaan berikut menunjukkan teknik ini:
SELECT [EmailAddress], [CustomerName] FROM [Customers] WHERE [EmailAddress] IN (SELECT [EmailAddress] FROM [Customers] GROUP BY [EmailAddress] HAVING COUNT(*) > 1)
Pertanyaan ini mendapatkan semula semua baris daripada jadual 'Pelanggan' di mana nilai 'Alamat E-mel' wujud dalam kumpulan dengan lebih daripada satu tika. Dengan membandingkan nilai 'EmailAddress' dalam pertanyaan luar dengan nilai dalam subkueri, ia menapis nilai unik dengan berkesan.
Untuk data sampel yang disediakan, pertanyaan di atas akan menghasilkan hasil yang diingini:
CustomerName | EmailAddress |
---|---|
Aaron | [email protected] |
Christy | [email protected] |
John | [email protected] |
Atas ialah kandungan terperinci Bagaimana Saya Boleh Cari Alamat E-mel Pendua dalam Jadual Pangkalan Data Tanpa Menggunakan DISTINCT?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!