Сообщите мастеру гильдии, чтобы обновить базу рангов гильдии на уровне самого сильного игрока / участника, и участники получают ранжированную дату квеста. - PullRequest
0 голосов
/ 12 апреля 2019

Я пытаюсь создать sql, который уведомит всех основателей гильдии "один из ваших членов может быть уже 30-го уровня сегодня, пожалуйста, сделайте квест" повышение ранга гильдии "на основе самого сильного члена гильдии и дат квестов членов (target_newbie_date, target_intermediate_date" и target_pro_date).

Если у игрока еще нет квестовых дат, он просто проверит, находится ли он на 30/50/100 лвл (это мой текущий уровень ниже)

Проблема: Каждый участник должен достичь 30, 50, 100 уровней в определенную дату на основе его / ее квеста по желанию target_newbie_date, target_intermediate_date и target_pro_date сейчас, и мне нужно также проверить дату, если она не равна нулю, если она не равна нулю, уведомление получено ' появляются, пока дата не станет равной target_newbie_date.

так что моя модель изменится с

класс игрока

attr_accessor: name,: level

конец

к этому. Теперь у каждого игрока есть свой квест

класс игрока

принадлежит_гильдии

attr_accessor: name,: level,: target_newbie_date,: target_intermediate_date,: target_pro_date

конец

пока это sql для уведомления

 SELECT guild.*
 FROM
   (SELECT  `guild`.*, max(player.level) as current_guild_lvl
 FROM `guild`
 INNER JOIN `player` ON `player`.`guild_id` = `guild`.`id`
 AND `guild`.`founder_player_id` = 79
 AND `player`.`level` in (30,50,100))  as guild
 WHERE ((
        (guild_rank = 'newbies' and current_guild_lvl = 30) or 
        (guild_rank = 'intermediates' and current_guild_lvl = 50) or 
        (guild_rank = 'professionals' and current_guild_lvl = 100)) is false )

приветствуется любое улучшение производительности по моему запросу! хотя это не главный вопрос ^^,

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...