Подсчитать реферала и рассчитать цену из таблицы продуктов - PullRequest
0 голосов
/ 18 октября 2019

Я создаю реферальную систему. Теперь у меня есть две таблицы один пользователей и второй продукт. В пользовательской таблице у меня есть два столбца, один из которых является идентификатором пользователя. Вот моя таблица.

+----+-------------+
| id | referred_by |
+----+-------------+
| 35 | 0           |
| 36 | 35          |
| 40 | 35          |
| 41 | 35          |
| 44 | 41          |
| 45 | 36          |
| 46 | 41          |
+----+-------------+

Вот запрос. Этот запрос подсчитывает количество рефералов

select referred_by, count(*) from users group by referred_by.

Но я могу изменить результат, как ID пользователя 35 Имеют 3 реферала 40,41 и 46.

Теперь у меня есть таблица продуктов И идентификатор пользователя находится вТаблица продуктов.

+----+---------+---------------+
| id | user_id | product_price |
+----+---------+---------------+
|  1 |      37 |           300 |
|  2 |      38 |           300 |
|  3 |      40 |           300 |
|  4 |      41 |           300 |
|  5 |      42 |           300 |
|  6 |      44 |           300 |
|  7 |      45 |           300 |
|  8 |      35 |           300 |
|  9 |      35 |           300 |
| 10 |      35 |           300 |
| 11 |      35 |           300 |
| 12 |      46 |           300 |
+----+---------+---------------+

Мой внутренний запрос на присоединение Здесь.

select users.id,users.referred_by
,orders_products.user_id,orders_products.product_price 
from users 
inner join  orders_products  on  users.id=orders_products.user_id;

И вывод этого.

| id | referred_by | user_id | product_price |
+----+-------------+---------+---------------+
| 40 | 35          |      40 |           300 |
| 41 | 35          |      41 |           300 |
| 44 | 41          |      44 |           300 |
| 45 | 36          |      45 |           300 |
| 35 | 0           |      35 |           300 |
| 35 | 0           |      35 |           300 |
| 35 | 0           |      35 |           300 |
| 35 | 0           |      35 |           300 |
| 46 | 41          |      46 |           300 |
+----+-------------+---------+---------------+

Сейчас. Что я пытаюсь сделатьесли у пользователя Id 35 есть 3 реферала 36,40 и 41, то рассчитайте сумму цены 35, 36,40 и 41. Значит. Пожалуйста, она мой следующий уровень, попробуйте @ Я использую этот запрос.

select users.id,users.referred_by
,orders_products.user_id,sum(orders_products.product_price)
 from users 
inner join  orders_products  on  users.id=orders_products.user_id group by user_id;



+----+-------------+---------+------------------------------------+
| id | referred_by | user_id | sum(orders_products.product_price) |
+----+-------------+---------+------------------------------------+
| 35 | 0           |      35 |                               1200 |
| 40 | 35          |      40 |                                300 |
| 41 | 35          |      41 |                                300 |
| 44 | 41          |      44 |                                300 |
| 45 | 36          |      45 |                                300 |
| 46 | 41          |      46 |                                300 |
+----+-------------+---------+------------------------------------+

Теперь, как я могу получить Desire Out Put Out From This result. Я пытаюсь выйти на улицу так.

User_id ,referrals, total price
35,      3(36,40,42)        ,  20000(this will be total price of user 35,36,40,41)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...