SQL Server Recursive Self-Joins: Menavigasi Data Hierarki
Sambungan diri rekursif SQL Server menawarkan kaedah yang berkuasa untuk merentasi struktur data hierarki. Ini amat berharga apabila berurusan dengan hubungan ibu bapa-anak dalam satu jadual.
Pertimbangkan jadual Categories
dengan lajur ini:
Id
Name
ParentId
Penyertaan diri secara rekursif membolehkan kami mengekstrak perhubungan hierarki dalam jadual ini, merangkumi peringkat kategori bersarang.
Contoh Ilustrasi:
Bayangkan hierarki kategori ini:
<code>- Business Laptops - Gaming Laptops - Ultrabooks - Compact Ultrabooks</code>
Untuk mendapatkan semula "Komputer Riba Perniagaan" dan kategori induknya menggunakan ungkapan jadual biasa rekursif (CTE), kami boleh menggunakan pertanyaan ini:
<code class="language-sql">;WITH CTE AS ( SELECT id, name, name AS path, parent_id FROM Categories WHERE parent_id IS NULL UNION ALL SELECT t.id, t.name, CAST(cte.path + ',' + t.name AS VARCHAR(100)), t.parent_id FROM Categories t INNER JOIN CTE ON t.parent_id = CTE.id ) SELECT id, name, path FROM CTE WHERE name = 'Business Laptops';</code>
Keluaran pertanyaan ini ialah:
<code>id name path 1 Business Laptops Business Laptops</code>
Penyertaan diri rekursif menyediakan cara yang cekap untuk mengurus dan mendapatkan semula data daripada struktur hierarki yang kompleks, mengakses maklumat berkaitan merentas berbilang peringkat.
Atas ialah kandungan terperinci Bagaimanakah Penyertaan Diri Rekursif dalam Pelayan SQL Mendapatkan Data Hierarki?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!