MySQL如何查出两个用户的共同粉丝

在QQ中我们可以看到”共同好友”的功能。在微博中我们也可以看到“共同关注”的功能。这些功能其实原理都是一样的。都是查询两个用户的关注列表中是否有相同的属性。

下面我们来看一下如何查出两个用户的共同粉丝。

我们的例子中用到了两张表。一张是用户表(user)。另一张是粉丝表(follower),即某用户有哪些粉丝。这两张表中的数据如下图所示:

user表

 

MySQL如何查出两个用户的共同粉丝_第1张图片 follower表

用户1有粉丝2、3、4。

用户2有粉丝1、3 、4 。

用户1和用户2有公共的粉丝3、4。

 

那么我们如何将用户1和用户2的共同粉丝查询出来呢?

答案是使用 IN 关键字


SELECT follower_id FROM follower 
WHERE user_id=1 AND follower_id IN(SELECT follower_id FROM follower WHERE user_id=2);

解释一下上面的SQL语句。首先查出用户2的粉丝id列表。然后查询用户1的粉丝id列表,并且最终返回 在用户2的粉丝列表中也存在的 那些用户1的粉丝id。(即,只返回 同时存在于用户1和用户2的粉丝列表中的 粉丝id)

查询结果如下:

e

你可能感兴趣的:(MySQL,程序员养成计划)