Rumah > pangkalan data > tutorial mysql > Bagaimanakah Penyertaan Sendiri Boleh Membantu Saya Mencari Perhubungan dalam Jadual Pangkalan Data Tunggal?

Bagaimanakah Penyertaan Sendiri Boleh Membantu Saya Mencari Perhubungan dalam Jadual Pangkalan Data Tunggal?

Linda Hamilton
Lepaskan: 2025-01-14 12:36:44
asal
262 orang telah melayarinya

How Can Self-Joins Help Me Find Relationships Within a Single Database Table?

Memahami Penyertaan Diri dalam Pangkalan Data

Sertai sendiri ialah teknik pangkalan data yang berkuasa di mana jadual bercantum dengan dirinya sendiri. Ini mengelakkan lebihan data yang sering dikaitkan dengan mencipta jadual pendua, prinsip utama dalam penormalan pangkalan data.

Konsep Gabungan Diri

Bayangkan emp jadual dengan lajur Name dan Boss_id. Untuk mencari nama bos setiap pekerja, anda mungkin secara naluri membuat jadual kedua. Walau bagaimanapun, penyambungan diri secara elegan menyelesaikan masalah ini dalam satu jadual emp.

Contoh Penyertaan Diri Praktikal

Jom gunakan data sampel ini:

<code>Table: emp

Id  Name  Boss_id
1   ABC   3
2   DEF   1
3   XYZ   2</code>
Salin selepas log masuk

Untuk mendapatkan semula nama bos bagi setiap pekerja, kami menggunakan penyertaan sendiri:

<code class="language-sql">SELECT e1.Name, e2.Name AS Boss
FROM emp e1
INNER JOIN emp e2 ON e1.Boss_id = e2.Id;</code>
Salin selepas log masuk

Hasil Pertanyaan

Dataset data yang terhasil ialah:

<code>Name  Boss
ABC   XYZ
DEF   ABC
XYZ   DEF</code>
Salin selepas log masuk

Ini jelas menunjukkan hubungan bos-pekerja: bos ABC ialah XYZ, bos DEF ialah ABC, dan bos XYZ ialah DEF.

Aplikasi Penyertaan Diri

Penyertaan diri adalah serba boleh dan boleh digunakan dalam banyak situasi, termasuk:

  • Mengenal pasti perhubungan: Mendedahkan sambungan antara baris dalam jadual yang sama.
  • Pengesanan pendua: Mengesan entri pendua atau unik.
  • Perwakilan data hierarki: Membina struktur hierarki.
  • Pertanyaan rekursif: Menjana hasil melalui perhubungan rekursif.

Atas ialah kandungan terperinci Bagaimanakah Penyertaan Sendiri Boleh Membantu Saya Mencari Perhubungan dalam Jadual Pangkalan Data Tunggal?. 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