Как подсчитать пары при помощи MySQL?
Есть 4 таблицы с данными.
Надо написать запрос к БД который добавляет на счёт человека 10%, в виде бонусов, от суммы внесённой друзьями и друзьями друзей которых он привёл до, например 3 уровня (максимум 7) вложенности (Основной человек -> Друг -> Друг Друга -> и дальше ).
Бонусы добавляются только при условии когда количество друзей будет равно 20 (для теста можно 6) и все они будут составлять пары. Т.е. у каждого друга должно быть не менее двух друзей, чтобы их можно было засчитать парой.
После добавления бонуса за 10 пар (20 друзей) (для теста можно 3 пары - 6 друзей и/или друзей друзей), бонусы за эти суммы платежей больше не могут быть добавлены. Только за новые. Платежи должны быть со статусом Completed.
Описание таблиц:
ihc_orders- таблица с информацией о платежах.ihc_orders.uid- столбец с внутреннимidпользователя.ihc_orders.amount_value- столбец с суммой платежа.ihc_orders.status- столбец со статусом платежа.uap_affiliates- таблица рангов, но нам она нужна только для связиihc_ordersс остальными таблицами.uap_affiliate_referral_users_relations- таблица отношений между пользователями.uap_affiliate_referral_users_relations.affiliate_id- столбец сidпользователя.uap_affiliate_referral_users_relations.referral_wp_uid- столбец сidдруга/аффилиата/реферрала.uap_referrals- таблица для записи результата. Таблица заполняется на основании имеющихся данных.
Связи между таблицами:
ihc_orders.uid=uap_affiliates.uiduap_affiliates.id=uap_affiliate_referral_users_relations.affiliate_id
Версия MySQL на сервере 10.5.1-1.el7.centos
Некоторые моменты отбора уже получились, но не получается сформировать и подсчитать количество пар относящихся к пользователю и, соответственно, начислить проценты.
Таблицы и части запроса, которые получились на данный момент, можно посмотреть по ссылке fiddle