Rumah >pangkalan data >tutorial mysql >Mana yang Lebih Baik: Klausa JOIN Berbilang atau Syarat ATAU dalam Klausa HIDUP untuk Carian Jadual Pendua?
Mengoptimumkan Cantuman Jadual untuk Carian Pendua
Apabila menyertai jadual yang sama dua kali, biasanya terdapat dua pendekatan: menggunakan berbilang klausa JOIN atau menggabungkan ATAU syarat dalam klausa ON.
Berbilang JOIN Klausa (Kaedah 1):
Seperti yang ditunjukkan dalam contoh anda, kaedah ini melibatkan mewujudkan JOIN yang berasingan untuk setiap keadaan yang sepadan:
SELECT t1.PhoneNumber1, t1.PhoneNumber2, t2.SomeOtherFieldForPhone1, t3.someOtherFieldForPhone2 FROM Table1 t1 INNER JOIN Table2 t2 ON t2.PhoneNumber = t1.PhoneNumber1 INNER JOIN Table2 t3 ON t3.PhoneNumber = t1.PhoneNumber2
Pendekatan ini adalah mudah dan memastikan bahawa data yang terhasil mengandungi semua lajur yang diperlukan.
ATAU Keadaan dalam Klausa ON (Kaedah 2):
Kaedah ini cuba memudahkan pertanyaan dengan menggabungkan syarat JOIN menjadi satu:
SELECT ... FROM Table1 INNER JOIN Table2 ON Table1.PhoneNumber1 = Table2.PhoneNumber OR Table1.PhoneNumber2 = Table2.PhoneNumber
Walau bagaimanapun, pendekatan ini boleh membawa kepada pendua baris dalam set hasil jika kedua-dua syarat padanan dipenuhi untuk baris tertentu.
Terbaik Amalan:
Kaedah pilihan ialah Kaedah 1 dengan berbilang klausa JOIN. Ia menyediakan cara yang lebih jelas dan boleh dipercayai untuk menyertai jadual berdasarkan kriteria tertentu sambil mengelakkan pertindihan data.
Mengelakkan Gabungan Berlebihan:
Adalah penting untuk mengelakkan gabungan berlebihan dengan menggunakan alias yang sesuai dan konvensyen penamaan. Contohnya, pertanyaan berikut boleh dipermudahkan:
SELECT t.PhoneNumber1, t.PhoneNumber2, t1.SomeOtherFieldForPhone1, t1.someOtherFieldForPhone1 FROM Table1 t JOIN Table2 t1 ON t1.PhoneNumber = t.PhoneNumber1 JOIN Table2 t2 ON t2.PhoneNumber = t.PhoneNumber2
Dengan mengaliaskan jadual yang dicantumkan (cth., t1 dan t2), anda boleh mengurangkan lebihan dan menjadikan pertanyaan lebih mudah dibaca.
Atas ialah kandungan terperinci Mana yang Lebih Baik: Klausa JOIN Berbilang atau Syarat ATAU dalam Klausa HIDUP untuk Carian Jadual Pendua?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!