在QQ中我们可以看到”共同好友”的功能。在微博中我们也可以看到“共同关注”的功能。这些功能其实原理都是一样的。都是查询两个用户的关注列表中是否有相同的属性。
下面我们来看一下如何查出两个用户的共同粉丝。
我们的例子中用到了两张表。一张是用户表(user)。另一张是粉丝表(follower),即某用户有哪些粉丝。这两张表中的数据如下图所示:
![](https://i-blog.csdnimg.cn/blog_migrate/890975e2de24d84a81c1cf702204f6f0.png)
![](https://i-blog.csdnimg.cn/blog_migrate/40976406ce72defc97a68974c2b271e3.png)
用户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