Доработать запрос в базу данных Mysql и оформить его в php для задания в cron.

Бюджет: 100 руб
1.30 $ – 1.10 €
Заказчик выбрал исполнителя:
Андрей Барыкин  
Есть запрос к БД. Но он работает неправильно. Запрос должен начислять призовые баллы за каждую пару человек (только непосредственных наследников).

Если в таблице uap_relations в столбце parent_affiliate_id встречается значение из столбца id 2 раза (пара), то

1) добавить в таблицу uap_referrals в столбец affiliate_id это значение, в столбец description текст "За пару (значение из таблицы uap_relations столбца affiliate_id) и (значение из таблицы uap_relations столбца affiliate_id)",
2) в столбец amount 1000.00,
3) в столбец status 2 и т.д.

Значение может встречаться любое количество раз, и за пары, за которые уже начислялось, больше начисляться не должно.

Соответственно, человек (ID) находящийся в одной паре не может находиться в другой. Т.е. пары уникальны.

Но каждый раз после запуска запроса в БД начисления повторяются, т.е. за то что было начислено в прошлый раз опять начисляется. А этого не надо.

Запрос на данный момент:
INSERT INTO uap_referrals(`affiliate_id`, `amount`, `status`,`visit_id`, `description`, `source`, `reference`, `reference_details`, `parent_referral_id`, `child_referral_id`) 
SELECT * FROM 
( SELECT `parent_affiliate_id`, (FLOOR(COUNT(*) / 2) * 1000) AS `amount`,  
2 AS `status`,
0 AS `visit_id`,
'Бонус за пару' AS `description`,
'bonus' AS `source`,
0 AS `reference`,
'Bonus' AS `reference_details`,
0 AS `parent_referral_id`,
0 AS `child_referral_id`
FROM uap_relations GROUP BY `parent_affiliate_id` ) 
AS t 
ON DUPLICATE 
KEY UPDATE 
`amount` = t.`amount`,  
`status` = t.`status`,
`visit_id` = t.`visit_id`, 
`description` = t.`description`, 
`source` = t.`source`, 
`reference` = t.`reference`, 
`reference_details` = t.`reference_details`, 
`parent_referral_id` = t.`parent_referral_id`, 
`child_referral_id` = t.`child_referral_id`
Он срабатывает, но считает при каждом запуске все пары подряд. И те за которые начислено и те за которые ещё не начислялось. А надо чтобы начислялось за каждую пару только один раз.
Составить запрос к БД Mysql, чтобы он заработал как надо и оформить его для задания в Cron или для самостоятельной постоянной работы скрипта.
Пишите сроки и цену.
Опубликован 31.08.2019 в 00:37 Последнее изменение: 31.08.2019 в 00:55

Выберите способ верификации:

Обновите страницу после прохождения верификации.