WITH RECURSIVE · cây categories

CTE đệ quy chạy từng vòng cho tới khi không còn dòng mới

CTE đệ quy duyệt cây categories theo từng vòng Phần neo lấy 4 danh mục gốc, vòng 1 JOIN ra 7 danh mục con, vòng 2 ra 2 danh mục cháu, vòng 3 không còn dòng nào nên dừng; UNION ALL gom lại đủ 13 danh mục. MỖI VÒNG CHỈ JOIN VỚI CÁC DÒNG VÒNG NGAY TRƯỚC VỪA SINH RA PHẦN NEO Vòng 0 parent_id IS NULL Máy tính Điện thoại & Tablet Phụ kiện Thiết bị mạng 4 dòng mới PHẦN ĐỆ QUY Vòng 1 con của vòng 0 Laptop PC & Màn hình Điện thoại Máy tính bảng Chuột & Bàn phím Tai nghe & Loa Sạc & Cáp 7 dòng mới PHẦN ĐỆ QUY Vòng 2 con của vòng 1 Laptop gaming Laptop văn phòng 2 dòng mới PHẦN ĐỆ QUY Vòng 3 con của vòng 2 Không danh mục nào có parent_id là 3 hoặc 4 Bảng tạm rỗng → dừng đệ quy 0 dòng mới JOIN JOIN JOIN UNION ALL gom kết quả mọi vòng 4 + 7 + 2 = 13 dòng = cả 13 danh mục Dữ liệu có vòng lặp: bảng tạm không bao giờ rỗng, phải chặn © tiennhm