Rumah > pangkalan data > tutorial mysql > Menyertai Meja Yang Sama Dua Kali: Bila dan Bagaimana Amalan Terbaik?

Menyertai Meja Yang Sama Dua Kali: Bila dan Bagaimana Amalan Terbaik?

Mary-Kate Olsen
Lepaskan: 2025-01-07 07:27:42
asal
228 orang telah melayarinya

Joining the Same Table Twice: When and How is it Best Practice?

Sertai pada Jadual Yang Sama Dua Kali: Amalan Terbaik

Masalah:

Apabila menggabungkan dua jadual dengan lajur yang sepadan, bagaimana bolehkah anda mendapatkan semula data yang sepadan dengan kedua-dua lajur dengan cekap serentak?

Kaedah 1: Sertai Dua Kali

Seperti yang dilihat dalam contoh di atas, menyertai jadual yang sama dua kali membolehkan pengambilan data berasingan berdasarkan setiap lajur yang sepadan:

SELECT t.PhoneNumber1, t.PhoneNumber2, 
       t1.SomeOtherFieldForPhone1, t2.someOtherFieldForPhone2
FROM Table1 t
JOIN Table2 t1 ON t1.PhoneNumber = t.PhoneNumber1
JOIN Table2 t2 ON t2.PhoneNumber = t.PhoneNumber2
Salin selepas log masuk

Kaedah 2: ATAU dalam HIDUP Klausa

Pendekatan alternatif, walaupun tidak ditunjukkan sebagai berfungsi, akan cuba bergabung pada berbilang lajur padanan menggunakan OR dalam klausa ON:

SELECT ...
FROM Table1
INNER JOIN Table2 
   ON Table1.PhoneNumber1 = Table2.PhoneNumber OR
      Table1.PhoneNumber2 = Table2.PhoneNumber
Salin selepas log masuk

Amalan Terbaik :

Kaedah 1 disyorkan sebagai penyelesaian terbaik. Ia menyediakan cara yang mudah dan jelas untuk mendapatkan semula data yang sepadan dengan berbilang lajur padanan tanpa bergantung pada klausa ATAU yang kompleks.

Alternatif untuk Memperbaik Reka Bentuk:

Walaupun kedua-dua kaedah boleh dicapai hasil yang diingini, adalah penting untuk mempertimbangkan amalan terbaik reka bentuk pangkalan data untuk mengelakkan bergantung pada cantuman antara jadual berdasarkan semula jadi kunci, seperti nombor telefon. Kunci semula jadi boleh berubah dengan kerap, membawa kepada potensi isu dengan integriti data.

Atas ialah kandungan terperinci Menyertai Meja Yang Sama Dua Kali: Bila dan Bagaimana Amalan Terbaik?. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan