WITH RECURSIVE all_uploads (codigo, parent, ext, main) AS (
SELECT ut1.codigo, ut1.codigo_upload_temp_pai AS parent,
ut1.codigo_extensao AS ext, ut1.codigo AS main
FROM upload_temp ut1
WHERE ut1.codigo = 486
UNION ALL
SELECT ut2.codigo, ut2.codigo_upload_temp_pai AS parent,
ut2.codigo_extensao AS ext, au.main
FROM upload_temp ut2
JOIN all_uploads au ON au.parent = ut2.codigo
)
DELETE FROM upload_temp WHERE codigo IN (SELECT codigo FROM all_uploads);
Bạn phải đặt điểm bắt đầu trong lựa chọn ban đầu (bên trong với) HOẶC bạn phải bằng cách nào đó tạo một cột giả đại diện cho phần trên cùng của "cây", điều này giống nhau đối với mọi hàng trong toàn bộ cây đó. Đặt "top where" trong lựa chọn ban đầu bên trong với là giải pháp dễ dàng hơn.