Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Menyertai Meja dengan Sendiri Berbilang Kali dengan Cekap?

Bagaimana untuk Menyertai Meja dengan Sendiri Berbilang Kali dengan Cekap?

DDD
DDDasal
2025-01-07 07:16:41597semak imbas

How to Efficiently Join a Table to Itself Multiple Times?

Menyertai Jadual Yang Sama Dua Kali: Fahami Pendekatan Terbaik

Apabila bekerja dengan berbilang jadual, adalah perkara biasa untuk menghadapi tugas untuk menyertainya lajur yang sama beberapa kali. Cabaran ini timbul apabila anda memerlukan maklumat daripada jadual yang sama yang dipautkan ke lajur berlainan jadual lain.

Dalam senario yang diberikan, anda mempunyai dua jadual dengan struktur yang serupa, bercantum berdasarkan Jadual1.Nombor Telefon1 dan Jadual1.Nombor Telefon2. Matlamatnya adalah untuk mendapatkan set hasil yang mengandungi PhoneNumber1, SomeOtherField yang sepadan dengan PhoneNumber1, PhoneNumber2 dan SomeOtherField yang sepadan dengan PhoneNumber2.

Kaedah 1: Berbilang Gabungan

Kaedah pertama melibatkan bergabung di atas meja yang sama dua kali, seperti yang ditunjukkan di bawah:

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

Kaedah ini mendapatkan semula data yang diingini dengan cekap, walaupun ia mungkin kelihatan menyusahkan kerana berbilang klausa gabungan.

Kaedah 2: ATAU Syarat

Kaedah kedua cuba memudahkan pertanyaan menggunakan keadaan ATAU dalam HIDUP klausa:

SELECT ...
FROM Table1
INNER JOIN Table2 
   ON Table1.PhoneNumber1 = Table2.PhoneNumber OR
      Table1.PhoneNumber2 = Table2.PhoneNumber

Walau bagaimanapun, pendekatan ini memerlukan pengendalian tambahan dan mungkin tidak menghasilkan hasil yang diharapkan.

Pendekatan Terbaik

Pendekatan yang disyorkan ialah untuk menggunakan Kaedah 1, menyertai di atas meja beberapa kali dengan alias yang jelas untuk setiap penyertaan. Kaedah ini boleh dipercayai dan memastikan pengambilan data yang tepat.

Pertimbangan Pemfaktoran Semula

Perlu diingat bahawa menggunakan nombor telefon sebagai kunci semula jadi boleh membawa kepada isu penyelenggaraan, kerana nombor telefon mungkin kerap berubah. Pertimbangkan untuk menggunakan kunci buatan untuk mengekalkan integriti data.

Atas ialah kandungan terperinci Bagaimana untuk Menyertai Meja dengan Sendiri Berbilang Kali dengan Cekap?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn