Rumah >pangkalan data >tutorial mysql >Bagaimanakah Self Joins Membantu Menghubungkaitkan Data Dalam Satu Jadual?

Bagaimanakah Self Joins Membantu Menghubungkaitkan Data Dalam Satu Jadual?

Barbara Streisand
Barbara Streisandasal
2025-01-13 11:25:12507semak imbas

How Can Self Joins Help Relate Data Within a Single Table?

Pemahaman mendalam tentang sambungan diri: panduan

Dalam sistem pengurusan pangkalan data hubungan, penyertaan sendiri ialah operasi berkuasa yang membolehkan jadual dicantumkan kepada diri mereka sendiri. Ini amat berguna apabila anda perlu membandingkan atau mengaitkan data daripada baris yang berbeza dalam jadual.

Bila hendak menggunakan sambungan diri

Apabila jadual mengandungi lajur yang merujuk kepada data dalam jadual yang sama, anda perlu menggunakan gabungan sendiri. Contoh biasa ialah jadual pekerja, yang mengandungi lajur SupervisorID yang menunjuk kepada penyelia pekerja semasa.

Untuk melakukan penyambungan sendiri, jadual sebenarnya dibahagikan kepada dua keadaan, selalunya dipanggil e1 dan e2 masing-masing. e1 mewakili jadual asal, manakala e2 ialah salinannya. Kemudian, syarat bergabung menjadi e1.column = e2.column.

Contoh

Pertimbangkan jadual pekerja berikut:

EmployeeID FirstName LastName SupervisorID
1 John Doe 2
2 Mary Smith NULL
3 Jane Brown 1

Untuk menanyakan data dan mendapatkan maklumat tentang pekerja dan penyelia mereka dalam satu baris, anda boleh menggunakan penyertaan sendiri:

<code class="language-sql">SELECT e1.EmployeeID, 
       e1.FirstName, 
       e1.LastName,
       e1.SupervisorID, 
       e2.FirstName AS SupervisorFirstName, 
       e2.LastName AS SupervisorLastName
FROM Employee e1
LEFT OUTER JOIN Employee e2 ON e1.SupervisorID = e2.EmployeeID</code>

Pertanyaan ini akan mengeluarkan keputusan berikut:

EmployeeID FirstName LastName SupervisorID SupervisorFirstName SupervisorLastName
1 John Doe 2 Mary Smith
3 Jane Brown 1 John Doe

Atas ialah kandungan terperinci Bagaimanakah Self Joins Membantu Menghubungkaitkan Data Dalam Satu Jadual?. 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