diff --git a/YpDaemon/src/worker/sql.rs b/YpDaemon/src/worker/sql.rs index 5a33d8f..3627240 100644 --- a/YpDaemon/src/worker/sql.rs +++ b/YpDaemon/src/worker/sql.rs @@ -884,7 +884,15 @@ pub const QUERY_PROCESS_EXPIRED_AND_FILL: &str = r#" ) AS rn FROM needed_to_fill AS rtf JOIN falukant_data.character AS ch - ON ch.region_id = rtf.region_id + ON ch.region_id IN ( + WITH RECURSIVE region_tree AS ( + SELECT id FROM falukant_data.region WHERE id = rtf.region_id + UNION ALL + SELECT r2.id FROM falukant_data.region r2 + JOIN region_tree rt ON r2.parent_id = rt.id + ) + SELECT id FROM region_tree + ) AND ch.user_id IS NULL AND ch.birthdate <= NOW() - INTERVAL '21 days' AND ch.title_of_nobility IN ( diff --git a/src/worker/sql.rs b/src/worker/sql.rs index ed74338..30f8196 100644 --- a/src/worker/sql.rs +++ b/src/worker/sql.rs @@ -883,7 +883,15 @@ pub const QUERY_PROCESS_EXPIRED_AND_FILL: &str = r#" ) AS rn FROM needed_to_fill AS rtf JOIN falukant_data.character AS ch - ON ch.region_id = rtf.region_id + ON ch.region_id IN ( + WITH RECURSIVE region_tree AS ( + SELECT id FROM falukant_data.region WHERE id = rtf.region_id + UNION ALL + SELECT r2.id FROM falukant_data.region r2 + JOIN region_tree rt ON r2.parent_id = rt.id + ) + SELECT id FROM region_tree + ) AND ch.user_id IS NULL AND ch.birthdate <= NOW() - INTERVAL '21 days' AND ch.title_of_nobility IN (