我有三个表:user,friend_recommendation和movie。 我想得到推荐这部电影的人的名字,以及电影表中的电影信息,以及friend_recommendation表中的评论。我该怎么做呢?
假设用户表具有作为属性的名称,电影表具有作为属性的电影标题,并且friend_recommendation具有UID(推荐的用户),FID(推荐的人)和COMMENT(从UID到FID的评论是什么) )
甚至可以在一个查询中执行此操作吗?
答案 0 :(得分:2)
所以三个表,主要是这些字段(大大简化):
users (userId, name)
movies (movieId, movieInfo)
recommendations (fromUserId, toUserId, movieId, comment)
SELECT fromUser.name, toUser.name, m.movieInfo, r.comment
FROM recommendations r
INNER JOIN movies m ON m.movieId = r.movieId
INNER JOIN users fromUser ON r.fromUserId = fromUser.userId
INNER JOIN users toUser ON r.toUserId = toUser.userId
WHERE r.toUserId = << my user id, or whatever your criteria are >>
编辑以响应以下评论:同时检索电影被推荐到的用户的姓名/详细信息就像再次加入users表一样简单。您可以在JOIN
中看到我们从users
选择两次。