嗨,想弄清楚这个,已经找了很多地方,但因为我的桌子结构,我正在挣扎。这是我的表格结构:
用户-id,登录(pk)
课程-id(pk),名称
用户登录(fk)、课程ID(fk)
如何实现“买了这个的客户也买了这个…”功能?

最佳答案

我真的不明白你的问题和你需要什么。
无论如何,假设您的id=my_user_id的用户获得id=my_lesson_id的课程,并且您希望了解其他获得my_lesson_id的用户的所有课程,请尝试以下操作:

SELECT DISTINCT l.id, l.name, COUNT(l.id) as rank
FROM lessons l JOIN users_to_lessons ul
ON l.id = ul.lessons_ID
WHERE l.id<>my_lesson_id AND
  ul.users_LOGIN IN
  (SELECT DISTINCT us.login FROM users us
   JOIN users_to_lessons ls ON us.login = ls.users_LOGIN
   WHERE ls.lessons_ID = my_lesson_id
      AND us.id<>my_user_id)
GROUP BY l.id
ORDER BY rank DESC, l.name

关于mysql - 购买此商品的客户也购买了此商品…帮助,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7319046/

10-10 16:10