


Menggunakan Rekursif Self-Joins dalam SQL Server untuk Mendapatkan Kategori dan Leluhurnya
Artikel ini menunjukkan cara untuk mendapatkan semula kategori dan kategori nenek moyangnya daripada jadual hierarki dalam SQL Server menggunakan sambung kendiri rekursif. Kami akan menggunakan Common Table Expression (CTE) untuk tugasan ini.
Senario:
Pertimbangkan jadual Categories
dengan lajur Id
, Name
dan ParentId
yang mewakili struktur kategori hierarki. Matlamatnya adalah untuk menulis pertanyaan yang mengembalikan kategori tertentu (cth., "Komputer riba Perniagaan") bersama-sama dengan semua kategori induknya dalam rentetan tunggal yang dipisahkan koma.
Penyelesaian CTE Rekursif:
Penyelesaian menggunakan CTE rekursif untuk melintasi struktur hierarki. Inilah pertanyaannya:
WITH CategoryHierarchy AS ( SELECT id, name, CAST(name AS VARCHAR(MAX)) AS path, parent_id FROM Categories WHERE parent_id IS NULL -- Start with root categories UNION ALL SELECT c.id, c.name, CAST(ch.path + ',' + c.name AS VARCHAR(MAX)), c.parent_id FROM Categories c INNER JOIN CategoryHierarchy ch ON c.parent_id = ch.id )
CTE ini, CategoryHierarchy
, secara rekursif menyertai jadual Categories
kepada dirinya sendiri. Pernyataan awal SELECT
memilih kategori akar (yang mempunyai parent_id
sebagai NULL). UNION ALL
menggabungkan ini dengan pilihan rekursif berikutnya, membina rentetan path
dengan menggabungkan nama kategori ibu bapa dan anak.
Pertanyaan untuk Mendapatkan Kategori dan Nenek Moyang Tertentu:
Untuk mendapatkan semula kategori "Komputer Riba Perniagaan" dan nenek moyangnya:
SELECT id, name, path FROM CategoryHierarchy WHERE name = 'Business Laptops';
Contoh Jadual dan Data:
Mari kita buat contoh Categories
jadual dan masukkan beberapa data:
CREATE TABLE Categories ( Id INT PRIMARY KEY, Name VARCHAR(100), ParentId INT REFERENCES Categories(Id) ); INSERT INTO Categories (Id, Name, ParentId) VALUES (1, 'Electronics', NULL), (2, 'Laptops', 1), (3, 'Desktops', 1), (4, 'Business Laptops', 2), (5, 'Gaming Laptops', 2);
Hasil Jangkaan:
Untuk pertanyaan yang menyasarkan 'Komputer Riba Perniagaan', output yang dijangkakan ialah:
<code>id name path 4 Business Laptops Electronics,Laptops,Business Laptops</code>
Pendekatan ini secara berkesan mendapatkan semula kategori dan keturunan lengkapnya menggunakan CTE rekursif, menyediakan penyelesaian yang jelas dan cekap untuk menavigasi data hierarki dalam SQL Server. Ingat untuk melaraskan panjang VARCHAR(MAX)
jika nama kategori anda mungkin melebihi had ini.
Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Kategori dan Leluhurnya Menggunakan Rekursif Self-Join dalam SQL Server?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Artikel ini membincangkan menggunakan pernyataan jadual Alter MySQL untuk mengubah suai jadual, termasuk menambah/menjatuhkan lajur, menamakan semula jadual/lajur, dan menukar jenis data lajur.

Artikel membincangkan mengkonfigurasi penyulitan SSL/TLS untuk MySQL, termasuk penjanaan sijil dan pengesahan. Isu utama menggunakan implikasi keselamatan sijil yang ditandatangani sendiri. [Kira-kira aksara: 159]

Artikel membincangkan strategi untuk mengendalikan dataset besar di MySQL, termasuk pembahagian, sharding, pengindeksan, dan pengoptimuman pertanyaan.

Artikel membincangkan alat MySQL GUI yang popular seperti MySQL Workbench dan PHPMyAdmin, membandingkan ciri dan kesesuaian mereka untuk pemula dan pengguna maju. [159 aksara]

Artikel ini membincangkan jadual menjatuhkan di MySQL menggunakan pernyataan Jadual Drop, menekankan langkah berjaga -jaga dan risiko. Ia menyoroti bahawa tindakan itu tidak dapat dipulihkan tanpa sandaran, memperincikan kaedah pemulihan dan bahaya persekitaran pengeluaran yang berpotensi.

Artikel membincangkan menggunakan kunci asing untuk mewakili hubungan dalam pangkalan data, memberi tumpuan kepada amalan terbaik, integriti data, dan perangkap umum untuk dielakkan.

Artikel ini membincangkan membuat indeks pada lajur JSON dalam pelbagai pangkalan data seperti PostgreSQL, MySQL, dan MongoDB untuk meningkatkan prestasi pertanyaan. Ia menerangkan sintaks dan faedah mengindeks laluan JSON tertentu, dan menyenaraikan sistem pangkalan data yang disokong.

Artikel membincangkan mendapatkan MySQL terhadap suntikan SQL dan serangan kekerasan menggunakan pernyataan yang disediakan, pengesahan input, dan dasar kata laluan yang kuat. (159 aksara)


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

MantisBT
Mantis ialah alat pengesan kecacatan berasaskan web yang mudah digunakan yang direka untuk membantu dalam pengesanan kecacatan produk. Ia memerlukan PHP, MySQL dan pelayan web. Lihat perkhidmatan demo dan pengehosan kami.

SecLists
SecLists ialah rakan penguji keselamatan muktamad. Ia ialah koleksi pelbagai jenis senarai yang kerap digunakan semasa penilaian keselamatan, semuanya di satu tempat. SecLists membantu menjadikan ujian keselamatan lebih cekap dan produktif dengan menyediakan semua senarai yang mungkin diperlukan oleh penguji keselamatan dengan mudah. Jenis senarai termasuk nama pengguna, kata laluan, URL, muatan kabur, corak data sensitif, cangkerang web dan banyak lagi. Penguji hanya boleh menarik repositori ini ke mesin ujian baharu dan dia akan mempunyai akses kepada setiap jenis senarai yang dia perlukan.

PhpStorm versi Mac
Alat pembangunan bersepadu PHP profesional terkini (2018.2.1).

Dreamweaver CS6
Alat pembangunan web visual

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa