Đây có thể là những gì bạn đang tìm kiếm, theo mô tả của bạn:
WITH RECURSIVE cte AS (
SELECT id, parent_rate_plan_id
FROM rate_plan
WHERE id = ${user rate plan ID}
UNION ALL
SELECT rp.id, rp.parent_rate_plan_id
FROM cte
JOIN rate_plan rp ON rp.id = cte.parent_rate_plan_id
)
SELECT *
FROM cte
JOIN rate r ON r.rate_plan_id = cte.id
ODER BY length(prefix) DESC
LIMIT 1;
Đệ quy dừng tự động ngay khi nút trên cùng (parent_rate_plan_id IS NULL
) đã đạt được.
Sẽ hiệu quả hơn nếu tham gia vào rate
một lần sau khi bạn đã thu thập tất cả các kế hoạch.
Hướng dẫn sử dụng CTE (đệ quy).