我有三个表格:user,friend_recommendation和movie。 我想获得推荐这部电影给我的人的名字,以及电影表中的电影信息和friend_recommendation表中的评论。我该怎么做呢?如何使用单个查询查询多个表格
假设用户表具有名称作为属性,电影表具有电影标题作为属性,并且friend_recommendation具有UID(推荐用户),FID(推荐用户)和COMMENT(什么是来自UID的评论FID)
它甚至可以在一个查询中做到这一点?
我有三个表格:user,friend_recommendation和movie。 我想获得推荐这部电影给我的人的名字,以及电影表中的电影信息和friend_recommendation表中的评论。我该怎么做呢?如何使用单个查询查询多个表格
假设用户表具有名称作为属性,电影表具有电影标题作为属性,并且friend_recommendation具有UID(推荐用户),FID(推荐用户)和COMMENT(什么是来自UID的评论FID)
它甚至可以在一个查询中做到这一点?
所以三个表,基本上是与这些字段(大大简化):
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 >>
编辑回应下面的评论:另外检索名/用户的详细信息,电影推荐到就像再次加入用户表一样简单。您可以在JOIN
中看到我们从users
中选择了两次。
我认为你还需要friend_recommendation表中的电影参考 – Dalen 2011-04-30 22:22:56
而用户表需要一个'id'字段,而不仅仅是'name',但除此之外你似乎需要'加入'所有三个表并给出一个合适的WHERE条款。 – 2011-04-30 22:23:37