Миссия
Я пытаюсь выяснить количество детей в таблице, показанной ниже. Среда - LAMP, но помощь в правильном направлении через другие синтаксисы приветствуется.
Структура стола
users
-----
user_id
parent_id
user_meta
---------
user_id
registration_date
user_levels
-----------
user_id
level
Эта базовая структура вряд ли изменится, но может быть расширена.
Вариант использования
select
users.user_id
from
users
inner join
user_meta
on users.user_id = user_meta.user_id
inner join
user_levels
on users.user_id = user_levels.user_id
where
parent_id = *x*
and
registration_date > *certain date*
and
level < *certain level*
Условия
- Потомок пользователя считается как таковой, только если его уровень ниже заданного
*certain level*
. Если уровень потомка не ниже, узел является листом, но его следует исключить из подсчета.
- Учитывая,
*certain level*
и *certain date*
одинаковы для каждого запроса / набора запросов.
Я пытался использовать это в цикле, но количество запросов быстро возрастает. Это решение, вероятно, можно было бы использовать и хранить в задании cron, но я бы предпочел решение «как в реальном времени, как только получит».