加入或多个查询多对多关系

时间:2014-07-20 10:49:38

标签: mysql join subquery

考虑像app这样的小Facebook。 给定一个post-id列表,sql必须提取帖子和喜欢它的用户的所有喜欢。

Like
-post_id
-user_id

User
-user_id
-and many more columns(around 9)

由于'赞'表会很大这是一个更好的解决方案吗?

A)

result=SELECT * FROM Like WHERE post_id in (post_id_list).
user_list=extract_user_id_from_result
user=SELECT * FROM user WHERE user_id in (user_list)

B)

SELECT user.* FROM User JOIN Like on(Like.user_id=User.user_id) 
WHERE Like.post_id in (post_list)

1 个答案:

答案 0 :(得分:0)

据我所知,内部连接是一种笛卡尔式,并且表现不佳。所以尝试使用子查询,我认为它更好。