У меня есть таблица MySQL со следующей схемой:
+---------+---------+----------------------+------------+
| User ID | Song ID | Recommending User ID | Created On |
+---------+---------+----------------------+------------+
| 1001 | 54 | 1004 | 2011-07-21 |
| 1002 | 23 | 1005 | 2011-07-28 |
| 1002 | 166 | 1001 | 2011-07-31 |
+---------+---------+----------------------+------------+
То, что я пытаюсь сделать, - это давать пользователям баллы, когда кто-то предпочитает песню, которую они рекомендуют. Таким образом, запрос берет каждого пользователя в системе и выясняет, кто имеет наибольшее количество баллов по отношению к пользователю при его сканировании.
Итак, скажем, мы берем пользователя 1001. 1001 любимая песня с идентификатором 54, которая была рекомендована 1004 7/21. Запрос должен дать 40 баллов при сканировании 1001.
Теперь, что делает это сложным, я хочу добавить второй уровень. Таким образом, для каждого пользователя с 1001 избранным (то есть 1004) я хочу искать его (1004) таким же образом, давая каждому 1004 избранных 20 баллов, при этом все еще вычисляя 1001 * 1008
Просто чтобы уточнить еще раз. Давайте возьмем 1002 в качестве примера:
Computing 1002:
User 1005 gets 40 pts
User 1001 gets 40 pts
Computing 1005
nothing
Computing 1001
User 1004 gets 20 pts
Done
Любая помощь о том, как начать очень ценится:)
* Редактировать: указанный mysql