есть структура как в таблице на картинке
у каждого пользователя есть свои уровни рефералов как на фото 2
Как мне найти пользователя(реферала, у которого нет дочки) например в ветке, которая начинается с id 3? пока я додумался как найти свободного реферала у которого нет дочки по все структуре:
SELECT min(t1.id) as refer, t1.parent_id, t1.user_id as us_id, t2.cnt
FROM modxev_programm_one as t1
LEFT JOIN
(
SELECT parent_id, COUNT(parent_id) as cnt
FROM modxev_programm_one
WHERE parent_id is not null
GROUP BY parent_id
) as t2
ON t1.id = t2.parent_id
WHERE t2.cnt > 0 and t2.cnt < 2
как сделать, чтобы поиск начинался от конкретного парента, например id=3? без рекурсии и процедруы, так как хостинг этого не дает сделать, нужен vps хостинг
написал вот такой алгоритм, выводит дерево для пользователя
<?php
$sql= "SELECT id, parent_id, user_id FROM modxev_programm_one";
$cats = array();
$statement = $modx->query($sql);
$parent = $statement->fetchAll(PDO::FETCH_ASSOC);
foreach ($parent as $res) {
$cats[$res['parent_id']][] = $res;
}
function build_tree($cats,$parent_id){
if(is_array($cats) and count($cats[$parent_id])>0){
$tree = '<ul>';
foreach($cats[$parent_id] as $cat){
$tree .= '<li>'.$cat['user_id'];
$tree .= build_tree($cats,$cat['id']);
$tree .= '</li>';
}
$tree .= '</ul>';
}
else return null;
return $tree;
}
echo build_tree($cats,2);
а как теперь посчитать и вычислить у кого нет дочек либо одна?
Для того, чтобы найти к-во рефералов у конкретного id:
SELECT id, (SELECT count (*) FROM modxev_programm_one t2 WHERE t2.parent_id=t1.id) AS cnt
FROM modxev_programm_one t1
WHERE id=3
Чтобы найти все id, у которых менее 2х рефералов:
SELECT id, cnt from (
SELECT id, (SELECT count (*) FROM modxev_programm_one t2 WHERE t2.parent_id=t1.id) AS cnt
FROM modxev_programm_one t1) x
WHERE x.cnt<2
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Есть массив ID товаровПользователь может выбрать 1 товар много раз
Хочу решить задачу с копированием отзывов в мой WP сайт из google place или яндекс картыно там по умолчанию выводится 10 отзывов
В базе есть записи с валютами, и у каждой валюты своя категорияВалюта и категория в одной таблице