|
Как составить запрос к БД для добавления бонусов за пары?
|
|||
---|---|---|---|
#18+
Всем привет. Помогите составить запрос к БД. Есть 4 таблицы с данными. Надо написать запрос к БД который добавляет на счёт человека 10%, в виде бонусов, от суммы внесённой друзьями и друзьями друзей которых он привёл до, например 3 уровня (максимум 7) вложенности (Основной человек -> Друг -> Друг Друга -> и дальше ). Бонусы добавляются только при условии когда количество друзей будет равно 20 (для теста можно 6) и все они будут составлять пары. Т.е. у каждого друга должно быть не менее двух друзей, чтобы их можно было засчитать парой. После добавления бонуса за 10 пар (20 друзей) (для теста можно 3 пары - 6 друзей и/или друзей друзей), бонусы за эти суммы платежей больше не могут быть добавлены. Только за новые. Надеюсь понятно объяснил. Версия MySQL 5.5.64-MariaDB Запрос частично написан. Но не выполняет все задачи, в частности, при каждом запуске запроса он добавляет в таблицу повторные данные. Дамп этих таблиц и часть запроса под спойлером. Дамп: -- phpMyAdmin SQL Dump-- version 4.4.15.10-- https://www.phpmyadmin.net ---- Хост: localhost-- Время создания: Фев 17 2020 г. 11:07-- Версия сервера: 5.5.64-MariaDB-- Версия PHP: 5.4.16SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";SET time_zone = "+00:00";/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;/*!40101 SET NAMES utf8mb4 */;---- База данных: `testbd`---- ------------------------------------------------------------ Структура таблицы `ihc_orders`--CREATE TABLE IF NOT EXISTS `ihc_orders` ( `id` int(11) NOT NULL `uid` int(11) DEFAULT NULL `lid` int(11) DEFAULT NULL `amount_type` varchar(200) DEFAULT NULL `amount_value` decimal(122) DEFAULT '0.00' `automated_payment` tinyint(1) DEFAULT NULL `status` varchar(100) DEFAULT NULL `create_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP `used` tinyint(4) DEFAULT '0' `ref_proc_t` tinyint(4) DEFAULT '0') ENGINE=InnoDB AUTO_INCREMENT=98 DEFAULT CHARSET=utf8;---- Дамп данных таблицы `ihc_orders`--INSERT INTO `ihc_orders` (`id` `uid` `lid` `amount_type` `amount_value` `automated_payment` `status` `create_date` `used` `ref_proc_t`) VALUES(14 14 8 'RUBBON' 300000.00 1 'Completed' '2019-08-04 05:09:23' 1 1)(17 33 1 'RUBBON' 10000.00 1 'Completed' '2019-08-04 05:50:57' 1 1)(18 34 1 'RUBBON' 10000.00 1 'Completed' '2019-08-04 05:53:32' 1 1)(19 35 2 'RUBBON' 100000.00 1 'Completed' '2019-08-09 23:50:56' 1 1)(21 36 2 'RUBBON' 100000.00 1 'Completed' '2019-08-10 00:07:17' 1 1)(22 32 2 'RUBBON' 100000.00 1 'Completed' '2019-08-10 00:10:47' 1 1)(23 37 4 'RUBBON' 20000.00 1 'Completed' '2019-08-18 23:17:16' 1 1)(24 45 1 'RUBBON' 10000.00 1 'Completed' '2019-09-02 00:28:30' 1 1)(25 46 1 'RUBBON' 10000.00 1 'Completed' '2019-09-02 00:32:32' 1 1)(35 55 2 'RUBBON' 100000.00 1 'Completed' '2019-11-15 17:39:25' 1 1)(39 56 4 'RUBBON' 20000.00 1 'Completed' '2019-11-15 18:56:06' 1 1)(40 57 5 'RUBBON' 2000000.00 1 'Completed' '2019-11-15 19:01:44' 1 1)(41 58 1 'RUBBON' 10000.00 1 'Completed' '2019-11-15 19:33:49' 1 1)(42 60 3 'RUBBON' 1000000.00 1 'Completed' '2019-09-01 09:19:15' 1 1)(43 61 1 'RUBBON' 10000.00 1 'Completed' '2019-11-15 23:46:06' 1 1)(44 62 2 'RUBBON' 100000.00 1 'Completed' '2019-11-16 01:10:01' 1 1)(45 63 13 'RUBBON' 40000.00 1 'Completed' '2019-10-15 07:29:19' 1 1)(46 64 4 'RUBBON' 20000.00 1 'Completed' '2019-11-16 07:51:57' 1 1)(47 65 2 'RUBBON' 100000.00 1 'Completed' '2019-11-16 10:08:11' 1 1)(48 64 1 'RUBBON' 10000.00 1 'Completed' '2019-11-16 10:24:28' 1 1)(49 66 2 'RUBBON' 100000.00 1 'Completed' '2019-11-16 23:00:31' 1 1)(51 68 2 'RUBBON' 100000.00 1 'Completed' '2019-11-16 23:07:39' 1 1)(52 69 3 'RUBBON' 1000000.00 1 'Completed' '2019-09-01 11:24:32' 1 1)(53 70 2 'RUBBON' 100000.00 1 'Completed' '2019-11-16 23:18:21' 1 1)(54 71 4 'RUBBON' 20000.00 1 'Completed' '2019-11-16 23:26:37' 1 1)(56 73 2 'RUBBON' 100000.00 1 'Completed' '2019-11-16 23:35:04' 1 1)(57 74 9 'RUBBON' 400000.00 1 'Completed' '2019-11-16 23:39:39' 1 1)(58 75 4 'RUBBON' 20000.00 1 'Completed' '2019-11-16 23:46:19' 1 1)(59 76 1 'RUBBON' 10000.00 1 'Completed' '2019-11-16 23:51:29' 1 1)(61 78 13 'RUBBON' 40000.00 1 'Completed' '2019-11-16 23:57:29' 1 1)(62 79 2 'RUBBON' 100000.00 1 'Completed' '2019-11-17 00:47:16' 1 1)(65 82 5 'RUBBON' 30000.00 1 'Completed' '2019-11-17 00:54:42' 1 1)(68 83 1 'RUBBON' 10000.00 1 'Completed' '2019-11-17 13:15:42' 1 1)(69 84 1 'RUBBON' 10000.00 1 'pending' '2019-11-17 22:27:56' 0 0)(70 87 1 'RUBBON' 10000.00 1 'Completed' '2019-11-21 20:58:57' 1 1)(74 91 2 'RUBBON' 100000.00 1 'pending' '2019-11-22 21:01:17' 0 0)(75 92 5 'RUBBON' 30000.00 1 'Completed' '2019-11-25 18:54:02' 1 1)(76 93 1 'RUBBON' 10000.00 1 'pending' '2019-11-26 15:19:57' 0 0)(77 82 1 'RUBBON' 10000.00 1 'pending' '2019-11-27 18:45:09' 0 0)(85 95 5 'RUBBON' 30000.00 1 'Completed' '2019-11-30 09:56:50' 1 1)(87 101 2 'RUBBON' 100000.00 1 'Completed' '2019-12-02 17:39:03' 1 0)(88 103 3 'RUBBON' 1000000.00 1 'Completed' '2019-12-20 18:14:35' 1 0)(89 82 2 'RUBBON' 100000.00 1 'pending' '2019-12-23 21:39:49' 0 0)(90 82 9 'RUBBON' 400000.00 1 'pending' '2019-12-23 21:48:30' 0 0)(91 104 1 'RUBBON' 10000.00 1 'Completed' '2020-01-06 20:26:17' 1 0)(92 82 2 'RUBBON' 100000.00 1 'pending' '2020-01-22 10:34:39' 0 0)(93 82 2 'RUBBON' 100000.00 1 'pending' '2020-01-22 10:35:11' 0 0)(94 105 1 'RUBBON' 10000.00 1 'Completed' '2020-02-09 18:43:47' 1 0)(95 106 1 'RUBBON' 10000.00 1 'Completed' '2020-02-09 20:55:53' 1 0)(96 107 2 'RUBBON' 100000.00 1 'Completed' '2020-02-09 20:57:20' 1 0)(97 95 2 'RUBBON' 100000.00 1 'pending' '2020-02-15 22:34:09' 0 0);-- ------------------------------------------------------------ Структура таблицы `uap_affiliates`--CREATE TABLE IF NOT EXISTS `uap_affiliates` ( `id` int(11) NOT NULL `uid` int(11) NOT NULL `rank_id` int(11) NOT NULL `start_data` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP `status` tinyint(1) DEFAULT '0') ENGINE=InnoDB AUTO_INCREMENT=97 DEFAULT CHARSET=utf8;---- Дамп данных таблицы `uap_affiliates`--INSERT INTO `uap_affiliates` (`id` `uid` `rank_id` `start_data` `status`) VALUES(12 14 4 '2019-08-01 22:04:24' 1)(29 32 4 '2019-08-04 05:48:28' 1)(30 33 4 '2019-08-04 05:50:57' 1)(31 34 4 '2019-08-04 05:53:32' 1)(32 35 4 '2019-08-09 23:50:55' 1)(33 36 4 '2019-08-10 00:02:12' 1)(34 37 4 '2019-08-18 23:17:16' 1)(39 45 6 '2019-09-02 00:28:30' 1)(40 46 4 '2019-09-02 00:32:32' 1)(47 55 4 '2019-11-15 17:39:25' 1)(48 56 4 '2019-11-15 18:01:09' 1)(49 57 4 '2019-11-15 19:01:43' 1)(50 58 4 '2019-11-15 19:33:49' 1)(51 59 4 '2019-11-15 20:56:36' 1)(52 60 4 '2019-08-31 22:55:33' 1)(53 61 4 '2019-11-15 23:46:06' 1)(54 62 4 '2019-11-17 01:10:01' 1)(55 63 4 '2019-10-15 07:29:19' 1)(56 64 4 '2019-10-15 07:51:57' 1)(57 65 4 '2019-11-16 10:08:11' 1)(58 66 4 '2019-11-16 23:00:30' 1)(60 68 4 '2019-11-16 23:07:39' 1)(61 69 4 '2019-11-16 23:12:32' 1)(62 70 4 '2019-11-16 23:18:21' 1)(63 71 4 '2019-11-16 23:26:37' 1)(65 73 4 '2019-11-16 23:35:04' 1)(66 74 4 '2019-11-16 23:39:38' 1)(67 75 4 '2019-11-16 23:46:19' 1)(68 76 4 '2019-11-16 23:51:29' 1)(70 78 4 '2019-11-16 23:57:29' 1)(71 79 4 '2019-11-17 00:47:16' 1)(74 82 4 '2019-11-17 00:54:42' 1)(75 83 6 '2019-11-17 13:15:42' 1)(79 87 6 '2019-11-21 21:02:11' 1)(83 91 6 '2019-11-22 21:01:17' 1)(85 93 6 '2019-11-26 15:19:57' 1)(87 95 6 '2019-11-28 14:34:43' 1)(91 101 6 '2019-12-02 17:41:11' 1)(92 103 6 '2019-12-20 18:11:23' 1)(93 104 6 '2020-01-06 20:31:54' 1)(94 105 6 '2020-02-09 18:43:57' 1)(95 107 6 '2020-02-09 20:57:45' 1)(96 106 6 '2020-02-09 20:57:53' 1);-- ------------------------------------------------------------ Структура таблицы `uap_affiliate_referral_users_relations`--CREATE TABLE IF NOT EXISTS `uap_affiliate_referral_users_relations` ( `id` int(11) NOT NULL `affiliate_id` int(11) NOT NULL `referral_wp_uid` int(11) DEFAULT NULL `DATE` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP) ENGINE=InnoDB AUTO_INCREMENT=62 DEFAULT CHARSET=utf8;---- Дамп данных таблицы `uap_affiliate_referral_users_relations`--INSERT INTO `uap_affiliate_referral_users_relations` (`id` `affiliate_id` `referral_wp_uid` `DATE`) VALUES(8 12 25 '2019-08-04 00:57:32')(11 12 28 '2019-08-04 04:50:30')(12 12 29 '2019-08-04 04:57:18')(13 12 30 '2019-08-04 05:01:37')(15 12 32 '2019-08-04 05:48:29')(16 12 33 '2019-08-04 05:50:57')(17 30 34 '2019-08-04 05:53:32')(18 12 35 '2019-08-09 23:50:56')(19 30 36 '2019-08-10 00:02:13')(20 12 37 '2019-08-18 23:17:16')(21 29 45 '2019-09-02 00:28:30')(22 29 46 '2019-09-02 00:32:32')(23 47 55 '2019-11-15 17:44:16')(24 47 56 '2019-11-15 18:01:09')(25 47 57 '2019-11-15 19:01:44')(26 49 58 '2019-11-15 19:33:49')(27 49 61 '2019-11-15 23:46:06')(28 49 62 '2019-11-16 01:10:01')(29 49 63 '2019-11-16 07:29:19')(30 55 64 '2019-11-16 07:51:57')(31 52 65 '2019-11-16 10:08:11')(32 52 66 '2019-11-16 23:00:31')(34 52 68 '2019-11-16 23:07:39')(35 52 69 '2019-11-16 23:12:32')(36 52 70 '2019-11-16 23:18:21')(37 52 71 '2019-11-16 23:26:37')(38 63 72 '2019-11-16 23:33:07')(39 63 73 '2019-11-16 23:35:04')(40 63 74 '2019-11-16 23:39:39')(41 52 75 '2019-11-16 23:46:19')(42 52 76 '2019-11-16 23:51:29')(43 67 77 '2019-11-16 23:55:52')(44 67 78 '2019-11-16 23:57:29')(45 57 79 '2019-11-17 00:47:16')(46 57 80 '2019-11-17 00:51:22')(47 57 81 '2019-11-17 00:53:05')(48 74 82 '2019-11-17 00:54:42')(49 55 83 '2019-11-17 13:15:42')(50 58 84 '2019-11-17 22:27:56')(51 55 88 '2019-11-21 22:43:37')(52 55 89 '2019-11-22 08:27:56')(53 55 90 '2019-11-22 09:09:19')(54 52 91 '2019-11-22 21:01:17')(55 83 93 '2019-11-26 15:19:57')(56 74 94 '2019-11-28 13:57:44')(57 74 95 '2019-11-28 14:34:43')(58 47 101 '2019-12-02 17:39:03')(59 49 104 '2020-01-06 20:26:17')(60 39 106 '2020-02-09 20:55:53')(61 39 107 '2020-02-09 20:57:20');-- ------------------------------------------------------------ Структура таблицы `uap_mlm_relations`--CREATE TABLE IF NOT EXISTS `uap_mlm_relations` ( `id` int(11) NOT NULL `affiliate_id` int(11) NOT NULL `parent_affiliate_id` int(11) NOT NULL) ENGINE=InnoDB AUTO_INCREMENT=77 DEFAULT CHARSET=utf8;---- Дамп данных таблицы `uap_mlm_relations`--INSERT INTO `uap_mlm_relations` (`id` `affiliate_id` `parent_affiliate_id`) VALUES(12 12 2)(30 29 12)(31 30 12)(32 31 30)(33 32 12)(34 33 30)(35 34 12)(38 39 29)(39 40 29)(40 48 47)(41 49 47)(42 50 49)(43 53 49)(44 54 49)(45 55 49)(46 56 55)(47 57 52)(48 58 52)(49 59 52)(50 60 52)(51 61 52)(52 62 52)(53 63 52)(54 64 63)(55 65 63)(56 66 63)(57 67 52)(58 68 52)(59 69 67)(60 70 67)(61 71 57)(62 72 57)(63 73 57)(64 74 57)(65 75 55)(68 80 55)(69 81 55)(70 82 55)(71 83 52)(73 85 83)(75 87 74)(76 92 49);-- ------------------------------------------------------------ Структура таблицы `uap_referrals`--CREATE TABLE IF NOT EXISTS `uap_referrals` ( `id` int(11) NOT NULL `refferal_wp_uid` int(11) DEFAULT '0' `campaign` varchar(200) DEFAULT NULL `affiliate_id` int(11) DEFAULT NULL `visit_id` int(11) DEFAULT NULL `description` varchar(400) DEFAULT NULL `source` varchar(200) DEFAULT NULL `reference` varchar(400) DEFAULT NULL `reference_details` text `parent_referral_id` int(11) DEFAULT NULL `child_referral_id` int(11) DEFAULT NULL `amount` decimal(122) DEFAULT '0.00' `currency` varchar(50) DEFAULT NULL `date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP `status` tinyint(1) DEFAULT '0' `payment` tinyint(1) DEFAULT '0' `Ref_count` tinyint(1) NOT NULL DEFAULT '0') ENGINE=InnoDB AUTO_INCREMENT=765 DEFAULT CHARSET=utf8;---- Дамп данных таблицы `uap_referrals`--INSERT INTO `uap_referrals` (`id` `refferal_wp_uid` `campaign` `affiliate_id` `visit_id` `description` `source` `reference` `reference_details` `parent_referral_id` `child_referral_id` `amount` `currency` `date` `status` `payment` `Ref_count`) VALUES(118 0 '-' 12 0 'От 3eg' 'mlm' 'mlm_117' '-' 0 117 400.00 'RUBBON' '2019-08-04 05:53:32' 2 0 0)(135 0 '-' 12 0 'От 3eg' 'mlm' 'mlm_134' '-' 0 134 10000.00 'RUBBON' '2019-08-10 00:02:13' 2 0 0)(137 0 '-' 12 0 'От 3eg' 'mlm' 'mlm_136' '-' 0 136 4000.00 'RUBBON' '2019-08-10 00:07:17' 2 0 0)(174 0 NULL 30 0 'Бонус за пару: 3133' 'bonus' '0' 'Bonus' 0 0 1000.00 'RUBBON' '2019-08-30 19:37:44' 2 0 2)(181 0 '-' 12 0 'От 2eg' 'mlm' 'mlm_180' '-' 0 180 400.00 'RUBBON' '2019-09-02 00:28:30' 2 0 0)(184 0 '-' 12 0 'От 2eg' 'mlm' 'mlm_183' '-' 0 183 400.00 'RUBBON' '2019-09-02 00:32:32' 2 0 0)(190 0 NULL 29 0 'Бонус за пару: 3940' 'bonus' '0' 'Bonus' 0 0 1000.00 'RUBBON' '2019-09-16 13:19:01' 2 2 2)(191 0 NULL 12 0 'Бонус за пару: 2528293032333537' 'bonus' '0' 'Bonus' 0 0 4000.00 'RUBBON' '2019-09-18 18:57:31' 2 0 8)(193 0 '' 47 0 'Бонус за пару: 555657101' 'bonus' '0' 'Bonus' 0 0 2000.00 'RUBBON' '2019-11-15 18:55:02' 2 0 4)(194 0 '' 49 0 'Бонус за пару: 58616263' 'bonus' '0' 'Bonus' 0 0 2000.00 'RUBBON' '2019-11-15 23:47:01' 2 0 4)(195 0 NULL 52 0 'Бонус за пару: 6566676869707175' 'bonus' '0' 'Bonus' 0 0 4000.00 'RUBBON' '2019-11-16 23:01:02' 2 0 8)(196 0 NULL 63 0 'Бонус за пару: 7273' 'bonus' '0' 'Bonus' 0 0 1000.00 'RUBBON' '2019-11-16 23:36:01' 2 0 2)(197 0 NULL 67 0 'Бонус за пару: 7778' 'bonus' '0' 'Bonus' 0 0 1000.00 'RUBBON' '2019-11-16 23:58:01' 2 0 2)(198 0 NULL 57 0 'Бонус за пару: 79808182' 'bonus' '0' 'Bonus' 0 0 2000.00 'RUBBON' '2019-11-17 00:52:01' 2 0 4)(199 0 NULL 55 0 'Бонус за пару: 64838889' 'bonus' '0' 'Bonus' 0 0 2000.00 'RUBBON' '2019-11-17 13:16:01' 2 0 4)(456 0 '-' 2 0 'Процент за Feg' 'Проценты' '-' '-' 0 14 60000.00 'RUBBON' '2019-11-19 17:56:48' 2 0 0)(457 0 '-' 12 0 'Процент за 2eg' 'Проценты' '-' '-' 0 32 2000.00 'RUBBON' '2019-11-19 17:56:48' 2 0 0)(458 0 '-' 12 0 'Процент за 3eg' 'Проценты' '-' '-' 0 33 2000.00 'RUBBON' '2019-11-19 17:56:48' 2 0 0)(459 0 '-' 30 0 'Процент за 4eg' 'Проценты' '-' '-' 0 34 2000.00 'RUBBON' '2019-11-19 17:56:48' 2 0 0)(460 0 '-' 12 0 'Процент за IDTest' 'Проценты' '-' '-' 0 35 20000.00 'RUBBON' '2019-11-19 17:56:48' 2 0 0)(461 0 '-' 30 0 'Процент за ID-Test-2' 'Проценты' '-' '-' 0 36 200000.00 'RUBBON' '2019-11-19 17:56:48' 2 0 0)(462 0 '-' 30 0 'Процент за ID-Test-2' 'Проценты' '-' '-' 0 36 20000.00 'RUBBON' '2019-11-19 17:56:48' 2 0 0)(463 0 '-' 12 0 'Процент за 2eg' 'Проценты' '-' '-' 0 32 20000.00 'RUBBON' '2019-11-19 17:56:48' 2 0 0)(464 0 '-' 12 0 'Процент за Test Lid' 'Проценты' '-' '-' 0 37 4000.00 'RUBBON' '2019-11-19 17:56:48' 2 0 0)(465 0 '-' 29 0 'Процент за TestPar' 'Проценты' '-' '-' 0 45 2000.00 'RUBBON' '2019-11-19 17:56:48' 2 0 0)(466 0 '-' 29 0 'Процент за TestPar2' 'Проценты' '-' '-' 0 46 2000.00 'RUBBON' '2019-11-19 17:56:48' 2 2 0)(467 0 '-' 47 0 'Процент за nesmes' 'Проценты' '-' '-' 0 56 4000.00 'RUBBON' '2019-11-19 17:56:48' 2 0 0)(468 0 '-' 47 0 'Процент за Maks' 'Проценты' '-' '-' 0 57 6000.00 'RUBBON' '2019-11-19 17:56:48' 2 0 0)(469 0 '-' 49 0 'Процент за Zhur' 'Проценты' '-' '-' 0 58 2000.00 'RUBBON' '2019-11-19 17:56:48' 2 0 0)(470 0 '-' 49 0 'Процент за Vetrov' 'Проценты' '-' '-' 0 61 2000.00 'RUBBON' '2019-11-19 17:56:48' 2 0 0)(472 0 '-' 49 0 'Процент за Lis' 'Проценты' '-' '-' 0 63 8000.00 'RUBBON' '2019-11-19 17:56:48' 2 0 0)(473 0 '-' 55 0 'Процент за Piri' 'Проценты' '-' '-' 0 64 4000.00 'RUBBON' '2019-11-19 17:56:48' 2 0 0)(474 0 '-' 52 0 'Процент за lina' 'Проценты' '-' '-' 0 65 20000.00 'RUBBON' '2019-11-19 17:56:48' 2 0 0)(475 0 '-' 55 0 'Процент за Piri' 'Проценты' '-' '-' 0 64 2000.00 'RUBBON' '2019-11-19 17:56:48' 2 0 0)(476 0 '-' 52 0 'Процент за ivanlit' 'Проценты' '-' '-' 0 66 20000.00 'RUBBON' '2019-11-19 17:56:48' 2 0 0)(477 0 '-' 52 0 'Процент за irinas' 'Проценты' '-' '-' 0 68 20000.00 'RUBBON' '2019-11-19 17:56:48' 2 0 0)(478 0 '-' 52 0 'Процент за tiscen' 'Проценты' '-' '-' 0 69 200000.00 'RUBBON' '2019-11-19 17:56:48' 2 2 0)(479 0 '-' 52 0 'Процент за stasmisha' 'Проценты' '-' '-' 0 70 20000.00 'RUBBON' '2019-11-19 17:56:48' 2 0 0)(480 0 '-' 52 0 'Процент за stepanov' 'Проценты' '-' '-' 0 71 4000.00 'RUBBON' '2019-11-19 17:56:48' 2 0 0)(481 0 '-' 63 0 'Процент за crot0v' 'Проценты' '-' '-' 0 73 20000.00 'RUBBON' '2019-11-19 17:56:48' 2 0 0)(482 0 '-' 63 0 'Процент за ivleev' 'Проценты' '-' '-' 0 74 80000.00 'RUBBON' '2019-11-19 17:56:48' 2 0 0)(483 0 '-' 52 0 'Процент за tolstaya' 'Проценты' '-' '-' 0 75 4000.00 'RUBBON' '2019-11-19 17:56:48' 2 0 0)(484 0 '-' 52 0 'Процент за coro1' 'Проценты' '-' '-' 0 76 2000.00 'RUBBON' '2019-11-19 17:56:48' 2 0 0)(485 0 '-' 67 0 'Процент за brodsky' 'Проценты' '-' '-' 0 78 8000.00 'RUBBON' '2019-11-19 17:56:48' 2 0 0)(486 0 '-' 57 0 'Процент за ivanprish' 'Проценты' '-' '-' 0 79 20000.00 'RUBBON' '2019-11-19 17:56:48' 2 0 0)(487 0 '-' 57 0 'Процент за ductoria' 'Проценты' '-' '-' 0 82 6000.00 'RUBBON' '2019-11-19 17:56:48' 2 0 0)(488 0 '-' 55 0 'Процент за port' 'Проценты' '-' '-' 0 83 2000.00 'RUBBON' '2019-11-19 17:56:48' 2 0 0)(519 0 '-' 49 0 'Процент за Tontoton' 'Проценты' 'user_login' '-' 0 62 20000.00 'RUBBON' '2019-11-19 19:10:12' 2 0 0)(526 0 '-' 74 0 'Процент за Natali' 'Проценты' '-' '-' 0 95 6000.00 'RUBBON' '2019-11-30 12:17:46' 2 2 0)(528 0 '-' 49 0 'Процент за Isa' 'Проценты' '-' '-' 0 103 200000.00 'RUBBON' '2019-12-20 18:19:22' 2 0 0)(529 0 '-' 39 0 'Бонус за пару: 106107' 'bonus' '0' 'Bonus' 0 0 1000.00 'RUBBON' '2020-02-09 20:58:01' 2 0 2)(760 0 '-' NULL 0 'Процент за TestPar20' '20% за подключение TestPar20' '-' '-' 0 106 2000.00 'RUBBON' '2020-02-10 12:47:53' 2 0 0)(761 0 '-' NULL 0 'Процент за TestPar21' '20% за подключение TestPar21' '-' '-' 0 107 20000.00 'RUBBON' '2020-02-10 12:47:53' 2 0 0);---- Индексы сохранённых таблиц------ Индексы таблицы `ihc_orders`--ALTER TABLE `ihc_orders` ADD PRIMARY KEY (`id`);---- Индексы таблицы `uap_affiliates`--ALTER TABLE `uap_affiliates` ADD PRIMARY KEY (`id`) ADD KEY `idx_uap_affiliates_uid` (`uid`);---- Индексы таблицы `uap_affiliate_referral_users_relations`--ALTER TABLE `uap_affiliate_referral_users_relations` ADD PRIMARY KEY (`id`) ADD KEY `idx_uap_affiliate_referral_users_relations_affiliate_id` (`affiliate_id`) ADD KEY `idx_uap_affiliate_referral_users_relations_referral_wp_uid` (`referral_wp_uid`);---- Индексы таблицы `uap_mlm_relations`--ALTER TABLE `uap_mlm_relations` ADD PRIMARY KEY (`id`) ADD KEY `idx_uap_mlm_relations_affiliate_id` (`affiliate_id`) ADD KEY `idx_uap_mlm_relations_parent_affiliate_id` (`parent_affiliate_id`);---- Индексы таблицы `uap_referrals`--ALTER TABLE `uap_referrals` ADD PRIMARY KEY (`id`) ADD KEY `idx_uap_referrals_affiliate_id` (`affiliate_id`);---- AUTO_INCREMENT для сохранённых таблиц------ AUTO_INCREMENT для таблицы `ihc_orders`--ALTER TABLE `ihc_orders` MODIFY `id` int(11) NOT NULL AUTO_INCREMENTAUTO_INCREMENT=98;---- AUTO_INCREMENT для таблицы `uap_affiliates`--ALTER TABLE `uap_affiliates` MODIFY `id` int(11) NOT NULL AUTO_INCREMENTAUTO_INCREMENT=97;---- AUTO_INCREMENT для таблицы `uap_affiliate_referral_users_relations`--ALTER TABLE `uap_affiliate_referral_users_relations` MODIFY `id` int(11) NOT NULL AUTO_INCREMENTAUTO_INCREMENT=62;---- AUTO_INCREMENT для таблицы `uap_mlm_relations`--ALTER TABLE `uap_mlm_relations` MODIFY `id` int(11) NOT NULL AUTO_INCREMENTAUTO_INCREMENT=77;---- AUTO_INCREMENT для таблицы `uap_referrals`--ALTER TABLE `uap_referrals` MODIFY `id` int(11) NOT NULL AUTO_INCREMENTAUTO_INCREMENT=765;DELIMITER $$---- События--CREATE DEFINER=`testbd`@`localhost` EVENT `procent_ch.1` ON SCHEDULE EVERY 10 MINUTE STARTS '2020-02-10 16:35:00' ON COMPLETION NOT PRESERVE DISABLE DO insert into uap_referralsselect null0'-'parent_affiliate_id0concat('Процент за 'user_login)'Проценты''-''-'0io.uidamount_value*0.2'RUBBON'now()200from ihc_orders io left join users u on io.uid = u.idleft join uap_affiliates ua on io.uid = ua.uid left join uap_mlm_relations umr on umr.affiliate_id = ua.idwhere io.used=0 and io.status='Completed'$$CREATE DEFINER=`testbd`@`localhost` EVENT `procent_ch.2` ON SCHEDULE EVERY 10 MINUTE STARTS '2020-02-10 16:35:10' ON COMPLETION NOT PRESERVE DISABLE DO Update ihc_orders set used = 1 where used= 0 and status='Completed'$$DELIMITER ;/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; Запрос: INSERT INTO uap_referrals (affiliate_id amount description reference_details)SELECT aff1 as affiliate_id(SUM(srf1) + SUM(srf2))*0.1 as amount'auto %' as description'auto %' as reference_detailsFROM(SELECT aff1 (SELECT SUM(amount_value) FROM ihc_orders as tb_o LEFT JOIN uap_affiliates as tb_af ON tb_af.uid = tb_o.uid WHERE tb_af.id = ref1 ) as srf1 ref1 (SELECT SUM(amount_value) FROM ihc_orders as tb_o LEFT JOIN uap_affiliates as tb_af ON tb_af.uid = tb_o.uid WHERE tb_af.id = ref2 ) as srf2 ref2 (SELECT SUM(amount_value) FROM ihc_orders as tb_o LEFT JOIN uap_affiliates as tb_af ON tb_af.uid = tb_o.uid WHERE tb_af.id = ref3 ) as srf3 ref3 (SELECT SUM(amount_value) FROM ihc_orders as tb_o LEFT JOIN uap_affiliates as tb_af ON tb_af.uid = tb_o.uid WHERE tb_af.id = ref4 ) as srf4 ref4 (SELECT SUM(amount_value) FROM ihc_orders as tb_o LEFT JOIN uap_affiliates as tb_af ON tb_af.uid = tb_o.uid WHERE tb_af.id = ref5 ) as srf5 ref5 FROM (SELECT tb_ar1.affiliate_id as aff1 tb_ar1.referral_wp_uid as ref1 tb_ar2.referral_wp_uid as ref2 tb_ar3.referral_wp_uid as ref3 tb_ar4.referral_wp_uid as ref4 tb_ar5.referral_wp_uid as ref5 FROM uap_affiliate_referral_users_relations as tb_ar1 LEFT JOIN uap_affiliate_referral_users_relations as tb_ar2 ON tb_ar1.referral_wp_uid = tb_ar2.affiliate_id LEFT JOIN uap_affiliate_referral_users_relations as tb_ar3 ON tb_ar2.referral_wp_uid = tb_ar3.affiliate_id LEFT JOIN uap_affiliate_referral_users_relations as tb_ar4 ON tb_ar3.referral_wp_uid = tb_ar4.affiliate_id LEFT JOIN uap_affiliate_referral_users_relations as tb_ar5 ON tb_ar4.referral_wp_uid = tb_ar5.affiliate_id WHERE tb_ar2.referral_wp_uid is not NULL ) as tb_rf) as tb_srfGROUP BY aff1;--"глубина" поиска настраивается в двух местах скрипта. сейчас смотрит 2 реферала--самый глубокий селект формирует таблицу рефералов затем получаем таблицу с покупками рефералов потом суммируем и получаем 10%--Вот в этой строке (SUM(srf1) + SUM(srf2))*0.1 as amount путём добавления SUM(srf3) мы получим глубину в 3 реферала и т.д.--И WHERE tb_ar2.referral_wp_uid is not NULL - заменить на tb_ar3 и т.д. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2020, 11:55 |
|
Как составить запрос к БД для добавления бонусов за пары?
|
|||
---|---|---|---|
#18+
Newageman Дамп этих таблиц и часть запроса под спойлером. Создайте лучше онлайновый fiddle (например, тут ), проверьте его (последним запросом должен быть просто SELECT * FROM table, дающий корректный вывод) и дайте на него ссылку. Есссно всю лишнюю хрень, типа версионных комментов и ненужных даже для нормального форматирования переносов строк - поудаляйте. Newageman Помогите составить запрос к БД. ... Версия MySQL 5.5.64-MariaDB Угу... писать запрос, требующий рекурсивного CTE, на древней версии, которая CTE не поддерживает (если она указана правильно, в чём есть изрядные сомнения)? не знаю как остальные - а я не мазохист. Потому советую настоятельно делать в формате хранимой процедуры. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2020, 13:38 |
|
Как составить запрос к БД для добавления бонусов за пары?
|
|||
---|---|---|---|
#18+
Newageman у каждого друга должно быть не менее двух друзей, чтобы их можно было засчитать парой Newageman После добавления бонуса за 10 пар (20 друзей) (для теста можно 3 пары - 6 друзей и/или друзей друзей), бонусы за эти суммы платежей больше не могут быть добавлены. Только за новые. А где и как предусмотрена пометка, что "вот эта пара (тройка?) уже поюзана"? на глазок - не видать... и вообще структуру бы следовало расписать - где есть что, зачем, и как связано. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2020, 13:41 |
|
Как составить запрос к БД для добавления бонусов за пары?
|
|||
---|---|---|---|
#18+
Akina А посмотреть, что получилось, можно было? это ж надо было придумать - обернуть код в тег таблицы ... который выел из кода все запятые, превратив его в хрень голимую. Создайте лучше онлайновый fiddle (например, тут ), проверьте его (последним запросом должен быть просто SELECT * FROM table, дающий корректный вывод) и дайте на него ссылку. Есссно всю лишнюю хрень, типа версионных комментов и ненужных даже для нормального форматирования переносов строк - поудаляйте. Я на форуме новичок. К сожалению, не разобрался как правильно здесь вставить таблицы. Исправлюсь. Akina Угу... писать запрос, требующий рекурсивного CTE, на древней версии, которая CTE не поддерживает (если она указана правильно, в чём есть изрядные сомнения)? не знаю как остальные - а я не мазохист. Потому советую настоятельно делать в формате хранимой процедуры. Версия реально такая, как на сервере написано, так сюда и скопировано. Подскажите какую версию MySQL надо установить на сервере? Akina Я бы это назвал таки тройкой... Нет, именно пары. Засчитывать нужно именно друзей которых должно быть парное кол-во. Akina А где и как предусмотрена пометка, что "вот эта пара (тройка?) уже поюзана"? на глазок - не видать. Нигде не предусмотрена. Но как я понимаю можно создать дополнительный столбец и в нём фиксировать. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2020, 22:43 |
|
Как составить запрос к БД для добавления бонусов за пары?
|
|||
---|---|---|---|
#18+
Akina Создайте лучше онлайновый fiddle (например, тут ), проверьте его (последним запросом должен быть просто SELECT * FROM table, дающий корректный вывод) и дайте на него ссылку. Есссно всю лишнюю хрень, типа версионных комментов и ненужных даже для нормального форматирования переносов строк - поудаляйте. Ссылка на таблицы: https://dbfiddle.uk/?rdbms=mariadb_10.2&fiddle=23b38a05908e0b0ef5032b654367a1ba Связь между таблицами: ihc_orders.uid = uap_affiliates.uid uap_affiliates.id = uap_affiliate_referral_users_relations.affiliate_id ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2020, 23:03 |
|
Как составить запрос к БД для добавления бонусов за пары?
|
|||
---|---|---|---|
#18+
Как я вижу решение: Взять affiliate_id из таблицы uap_affiliate_referral_users_relations Вычислить все referral_wp_uid относящиеся к этому affiliate_id из таблицы uap_affiliate_referral_users_relations Подсчитать их количество. Если у этого affiliate_id есть referral_wp_uid совпадающие с другим affiliate_id, то прибавить их к количеству referral_wp_uid относящихся к основному affiliate_id и так до 3 уровня вложенности. Как только общее количество referral_wp_uid достигнет, например, 6, то суммировать значения amount_value из таблицы ihc_orders относящиеся к uid из таблицы ihc_orders при условии status = Completed. Но я могу с лёгкостью ошибаться. Умножить полученное в предыдущем пункте значение на 0.1 и записать значение в таблицу uap_referrals. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2020, 00:49 |
|
Как составить запрос к БД для добавления бонусов за пары?
|
|||
---|---|---|---|
#18+
Newageman Нигде не предусмотрена. Но как я понимаю можно создать дополнительный столбец и в нём фиксировать. Newageman Нет, именно пары. Засчитывать нужно именно друзей которых должно быть парное кол-во. Сразу дополнительные вопросы. 1) Вот у участника нарисовались два друга. Когда следует считать бонус? А то они пришли, внесли по рублю, мы скидываем по гривеннику и успокаиваемся, а они завтра вложат по стотыщмильёнов - и начнутся вопли "какого хрена!!!". Или где-то чётко указано - 10% от первоначального взноса, а пополнения в эти 10% не включаются и идут лесом? 2) Вот у участника одномоментно нарисовались три друга (да, вот так случайно все трое в одну и ту же секунду). Какие 2 должны быть взяты? вариант "любые" - не рассматривается, критерий должен быть однозначным. Newageman Связь между таблицами: ihc_orders.uid = uap_affiliates.uid uap_affiliates.id = uap_affiliate_referral_users_relations.affiliate_id Таблиц - 5. Связей должно быть по идее 4, трёх маловато, какие-то из таблиц оказываются оторванными от схемы. Ну и вообще неплохо было бы какие-то пояснения дать по схеме - на голых структурах не очень понятно, что где хранится и что с этим происходит. Что именно мы видим? 4 таблицы исходные, и пятая - должна заполниться так, как показано? Или 5 таблиц, и одна из них должна быть пополнена на основании имеющихся данных? Мне fiddle больше нравится вот в таком виде: https://dbfiddle.uk/?rdbms=mariadb_10.2&fiddle=06ce8fceebd5bd5bc10d70a41ef217ae . Один блок - одна таблица, полностью. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2020, 07:55 |
|
Как составить запрос к БД для добавления бонусов за пары?
|
|||
---|---|---|---|
#18+
Akina Иными словами, бонус предоставляется, когда у участника появляется два аффилиата одного уровня (?) аффилированности. Ну ладно. Бонус складывается из количества таких парных аффилиатов. Akina 1) Вот у участника нарисовались два друга. Когда следует считать бонус? А то они пришли, внесли по рублю, мы скидываем по гривеннику и успокаиваемся, а они завтра вложат по стотыщмильёнов - и начнутся вопли "какого хрена!!!". Или где-то чётко указано - 10% от первоначального взноса, а пополнения в эти 10% не включаются и идут лесом? От первоначального взноса. Akina 2) Вот у участника одномоментно нарисовались три друга (да, вот так случайно все трое в одну и ту же секунду). Какие 2 должны быть взяты? вариант "любые" - не рассматривается, критерий должен быть однозначным. Должны браться наименьшие по UID. Им же всё равно присвоятся разные UID в не зависимости от того как близко по времени друг к другу они появились. Akina Таблиц - 5. Связей должно быть по идее 4, трёх маловато, какие-то из таблиц оказываются оторванными от схемы. Ну и вообще неплохо было бы какие-то пояснения дать по схеме - на голых структурах не очень понятно, что где хранится и что с этим происходит. 1)
Связи: ihc_orders.uid = uap_affiliates.uid uap_affiliates.id = uap_affiliate_referral_users_relations.affiliate_id uap_affiliate_referral_users_relations.affiliate_id = uap_mlm_relations.parent_affiliate_id Akina Мне fiddle больше нравится вот в таком виде: https://dbfiddle.uk/?rdbms=mariadb_10.2&fiddle=06ce8fceebd5bd5bc10d70a41ef217ae . Один блок - одна таблица, полностью. У Вас лучше и удобнее. Версию MySQL на сервере мне обновили. Теперь такая MySQL 10.5.1-1.el7.centos Спасибо за то что пытаетесь вникнуть в мой вопрос. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2020, 11:48 |
|
Как составить запрос к БД для добавления бонусов за пары?
|
|||
---|---|---|---|
#18+
авторMySQL 10.5.1 что то в Бетку залезли ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2020, 14:08 |
|
Как составить запрос к БД для добавления бонусов за пары?
|
|||
---|---|---|---|
#18+
Newageman MySQL 10.5.1-1.el7.centos Newageman От первоначального взноса. Как в таблице платежей определить, какой взнос первоначальный? опять по минимальному ID? А если у него один платёж со статусом 'pending'? А если два платежа, у первого `pending`, а у второго `Completed`? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2020, 14:14 |
|
Как составить запрос к БД для добавления бонусов за пары?
|
|||
---|---|---|---|
#18+
Akina, марияДБ в Центе ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2020, 16:31 |
|
Как составить запрос к БД для добавления бонусов за пары?
|
|||
---|---|---|---|
#18+
Akina Как в таблице платежей определить, какой взнос первоначальный? опять по минимальному ID? А если у него один платёж со статусом 'pending'? А если два платежа, у первого `pending`, а у второго `Completed`? Платёж должен быть со статусом `Completed`. Первоначальность определяется по времени создания записи или наименьшему ihc_orders.id относящемуся к ihc_orders.uid Если есть только один платёж со статусом `pending`, то человек даже не попадёт никуда дальше таблицы платежей. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2020, 20:53 |
|
Как составить запрос к БД для добавления бонусов за пары?
|
|||
---|---|---|---|
#18+
Ок. Тогда первоначальные платежи (точнее, их id), коих у нас оказывается 41 штука, получаем тривиальным Код: sql 1. 2. 3. 4.
Теперь давай определяться, какую ОДНУ таблицу будем использовать для связи. В принципе пофиг какую, выбирай любую, с ней будем работать, вторую вообще уберём из рассмотрения. Но!!! Тут есть проблема. Данные в этих двух таблицах НЕ СОВПАДАЮТ. Даже по количеству - в одной 50 записей, в другой 42, всего уникальных 88. На таких данных мы работать ну никак не сможем... fiddle ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2020, 21:31 |
|
Как составить запрос к БД для добавления бонусов за пары?
|
|||
---|---|---|---|
#18+
Akina Теперь давай определяться, какую ОДНУ таблицу будем использовать для связи. Я бы выбрал таблицу uap_affiliate_referral_users_relations просто из-за того что в ней количество записей больше. Видимо в таблицу uap_mlm_relations попадают не все пользователи, но по какой причине я не знаю и пытаюсь выяснить. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2020, 02:24 |
|
Как составить запрос к БД для добавления бонусов за пары?
|
|||
---|---|---|---|
#18+
Newageman Я бы выбрал таблицу На самом деле надо обследовать систему и чётко понять, что мы имеем: таблица А корректна, таблица Б корректна, обе таблицы некорректны. Если имеется самый неприятный, третий, вариант - то понять, какой из подвариантов верен: корректно пересечение, корректно объединение, некорректно ни то, ни другое. Newageman Видимо в таблицу uap_mlm_relations попадают не все пользователи Я дал статистику - всего в таблицах 50+42=92 записи, из них 88 уникальных (т.е. всего 4 записи присутствуют в обеих таблицах). Посмотри fiddle - я построил дерево зависимостей. Сравни. Вдруг да поможет в анализе системы. Кстати, эти запросы (вернее, один из них) можно будет использовать для выбора пар. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2020, 07:47 |
|
Как составить запрос к БД для добавления бонусов за пары?
|
|||
---|---|---|---|
#18+
Akina На самом деле надо обследовать систему и чётко понять, что мы имеем: таблица А корректна, таблица Б корректна, обе таблицы некорректны. Если имеется самый неприятный, третий, вариант - то понять, какой из подвариантов верен: корректно пересечение, корректно объединение, некорректно ни то, ни другое. Вариант 4. Обе таблицы верны, но первая использует обе колонки данных из таблицы uap_affiliates, а вторая одну колонку данных uap_affiliates. Из-за этого мы видим такую странную картину. Что я выяснил: 1) Таблица uap_affiliate_referral_users_relations: Значения в столбце referral_wp_uid равны значениям uap_affiliates. uid Значения в столбце affiliate_id равны значениям uap_affiliates. id 2) Таблица uap_mlm_relations: В этой таблице значения в столбцах parent_affiliate_id и affiliate_id равны значениям uap_affiliates. id ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2020, 12:56 |
|
Как составить запрос к БД для добавления бонусов за пары?
|
|||
---|---|---|---|
#18+
Newageman Запрос: Ты шо, издеваешься? Я даже на работе за деньги и с нормальной схемой не стану парсить такие sql портянки. Newageman Надеюсь понятно объяснил. Не понятно. Нарисуй картинку лучше. (Это не троллинг) Newageman например 3 уровня (максимум 7) вложенности Это всё плохо делается на sql. В том, чтобы загнать выборку в дерево на пхп (или что у тебя там) и посчитать, нет ничего зазорного, да и проще это на порядок. Если ты сейчас не можешь сходу разобраться с задачей, представь, как это всё не просто потом будет поддерживать. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2020, 13:20 |
|
Как составить запрос к БД для добавления бонусов за пары?
|
|||
---|---|---|---|
#18+
Newageman Вариант 4. Обе таблицы верны ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2020, 13:45 |
|
Как составить запрос к БД для добавления бонусов за пары?
|
|||
---|---|---|---|
#18+
crutchmaster Ты шо, издеваешься? Конечно. Я же именно для этого здесь. (сарказм) Не понятно. Нарисуй картинку лучше. (Это не троллинг) Что Вы хотите видеть на картинке? Это всё плохо делается на sql. В том, чтобы загнать выборку в дерево на пхп (или что у тебя там) и посчитать, нет ничего зазорного, да и проще это на порядок. Если ты сейчас не можешь сходу разобраться с задачей, представь, как это всё не просто потом будет поддерживать. Если это можно упростить с помощью PHP, то я только за. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2020, 14:17 |
|
Как составить запрос к БД для добавления бонусов за пары?
|
|||
---|---|---|---|
#18+
Akina Исключено. В них разное количество записей. Это да. Но если сравнивать именно сами записи, то они одинаковые, за исключением отсутствующих. Я бы остановил выбор на таблице uap_affiliate_referral_users_relations, т.к. в ней есть все значения из таблицы uap_mlm_relations (за исключением первой строки. Как выяснилось она ведёт к админу, а он в этом не участвует) и плюс свои. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2020, 14:35 |
|
Как составить запрос к БД для добавления бонусов за пары?
|
|||
---|---|---|---|
#18+
Newageman Я бы остановил выбор на таблице uap_affiliate_referral_users_relations Следующим шагом - получаем пары (отбрасывая одиночные, непарные записи) и платежи рефералов. fiddle Проверяй - и логику, и полученный результат. Мне, признаться, влом. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2020, 15:43 |
|
Как составить запрос к БД для добавления бонусов за пары?
|
|||
---|---|---|---|
#18+
Akina Проверяй - и логику, и полученный результат. Проверил. В колонках affiliate_uid и referral_uid значения верные (пересчитывал на пальцах). Логика отбора вроде бы тоже правильная. Только не могу понять как подсчитываются пары. У affiliate_uid=14 должно получиться в сумме 4 пары 32, 33, 35, 37 (2-е пары: Друзья) и 34, 36, 45, 46 (2-е пары: Друзья Друзей). Или я что-то не уловил? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2020, 17:21 |
|
Как составить запрос к БД для добавления бонусов за пары?
|
|||
---|---|---|---|
#18+
Как выяснилось, задача была другой. Надо эти бонусы добавлять только за друзей без всяких вложенностей. Основной человек -> Друг. Когда таких друзей набирается 10 штук (5 пар) тогда и надо добавлять 10% Основному человеку от суммы платежей друзей. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2020, 11:28 |
|
|
start [/forum/topic.php?fid=47&fpage=24&tid=1828681]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
44ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
2ms |
others: | 300ms |
total: | 436ms |
0 / 0 |