यह वही हो सकता है जिसे आप ढूंढ रहे हैं, आपके विवरण के अनुसार:
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;
जैसे ही शीर्ष नोड (parent_rate_plan_id IS NULL
. होता है, रिकर्सन अपने आप रुक जाता है ) पहुंच गया है।
rate
. में शामिल होना अधिक प्रभावी है एक बार जब आप सभी योजनाओं को एकत्र कर लेते हैं।