Rumah > pangkalan data > tutorial mysql > Bagaimanakah Penyertaan Diri Rekursif dalam Pelayan SQL Mendapatkan Data Hierarki?

Bagaimanakah Penyertaan Diri Rekursif dalam Pelayan SQL Mendapatkan Data Hierarki?

Patricia Arquette
Lepaskan: 2025-01-15 12:15:47
asal
597 orang telah melayarinya

How Can Recursive Self-Joins in SQL Server Retrieve Hierarchical Data?

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

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

Keluaran pertanyaan ini ialah:

<code>id      name                path
1       Business Laptops      Business Laptops</code>
Salin selepas log masuk

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!

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