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
Lepaskan: 2025-01-07 07:16:41
asal
588 orang telah melayarinya

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
Salin selepas log masuk

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
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan