Mysql 匹配不同数据库列表中的相同项
我正在写一个应用程序,人们可以上传自己的电影列表 我的数据库可能具有以下结构: 使用者Mysql 匹配不同数据库列表中的相同项,mysql,sql,database,pattern-matching,Mysql,Sql,Database,Pattern Matching,我正在写一个应用程序,人们可以上传自己的电影列表 我的数据库可能具有以下结构: 使用者 UserID-唯一标识符 名称-用户的全名 电子邮件-用户的电子邮件 电影 UserID-拥有此电影的用户 MovieID-电影唯一标识符(我目前正在使用IMDB的代码) 所以“电影”和“用户”有多对一的关系 我想做的是推荐一个随机“电影好友”的用户。基本上,我希望找到两个拥有同一部电影的用户(因此我尝试匹配2个用户的列表以找到匹配的电影),然后向他显示类似于“嘿,XYZ也是《黑暗骑士崛起》的粉丝!”
- UserID-唯一标识符
- 名称-用户的全名
- 电子邮件-用户的电子邮件
- UserID-拥有此电影的用户
- MovieID-电影唯一标识符(我目前正在使用IMDB的代码)
谢谢。查找具有相同电影ID的用户非常简单,只需三次连接即可
FROM
User u
INNER JOIN movie m
ON u.UserID = m.UserID
INNER JOIN moive BuddyMovie
ON m.moiveID = BuddyMovie.MovieID
and u.UserID <> Buddy.UserID --Don't want to be your own Buddy
INNER JOIN User BuddyUser
ON BuddyMovie.UserID = BuddyUser.UserID
WHERE
u.UserID = 123 -- For a given user
and m.MovieID = 345 -- Optionally For a given movie
来自
用户u
内接电影
在u.UserID=m.UserID上
内连接moive BuddyMovie
关于m.moiveID=BuddyMovie.MovieID
还有u.UserID Buddy.UserID——不想成为你自己的好友
内部连接用户BuddyUser
在BuddyMovie.UserID=BuddyUser.UserID上
哪里
u、 UserID=123——对于给定用户
m.MovieID=345——对于给定的电影是可选的
要获得随机用户,只需添加orderbyrand()
如果您只需要两个,只需添加限制2
要确保你不会两次得到同一个好友,你需要跟踪哪些好友已经准备好了,这超出了一个问题的范围