Amalan konvensional selalunya memerlukan gabungan berbilang Ungkapan Jadual Biasa (CTE) untuk mencapai tugas mendapatkan data yang kompleks. Walau bagaimanapun, keraguan masih berlarutan mengenai kebolehlaksanaan menggabungkan berbilang CTE dalam satu pertanyaan SQL.
Memang, adalah boleh dilaksanakan sepenuhnya untuk menggabungkan berbilang CTE dalam satu pertanyaan SQL. Sintaks memerlukan penggunaan kata kunci WITH sekali sahaja, diletakkan pada permulaan pertanyaan. Walaupun apabila berurusan dengan gabungan CTE rekursif dan bukan rekursif, kata kunci RECURSIVE masih harus disertakan sekali sahaja di bahagian atas.
Sebagai contoh:
WITH RECURSIVE cte1 AS (...) -- non-recursive , cte2 AS (SELECT ... UNION ALL SELECT ...) -- recursive , cte3 AS (...) SELECT ... FROM cte3 WHERE ...
Perlu diperhatikan bahawa pesanan klausa CTE menjadi tidak relevan apabila kata kunci RECURSIVE hadir. Menurut manual SQL, ia membenarkan pertanyaan CTE membuat rujukan kepada CTE lain tanpa mengira susunannya dalam klausa WITH.
Selain itu, CTE bukan rekursif yang tidak dirujuk dalam pernyataan SELECT akhir dan tidak mempunyai sebarang kesan cagaran tidak akan dilaksanakan.
Atas ialah kandungan terperinci Bolehkah Berbilang CTE Digabungkan dalam Satu Pertanyaan SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!