这是一个创建于 3878 天前的主题,其中的信息可能已经有所发展或是发生改变。
类似与新浪微博共同关注的人。多对多的问题。关注表id uid fid:id主键,uid用户uid(被关注者), fid粉丝uid(关注者)。现在有a,b两个人其uid分别为1和2,那么如何查询其共同关注的人。"SELECT * FROM `u_f` WHERE fid = 2 and uid in (SELECT uid FROM `u_f` WHERE fid = 1)",这条语句是可以得到,但是如果是要查询三个人共同关注的呢,要查询四个人共同关注的呢,如果这样上上面那样嵌套感觉有点并不靠谱,还是本身表结构上面就有问题?
1 条回复 • 1970-01-01 08:00:00 +08:00
|
|
1
rpx 2013-09-22 16:42:11 +08:00 1
我的思路: 先分别查出关注者1 2 3 4所关注的对象id,(4句单独sql可以实现) 然后把这4个sql的结果当成表,直接join就可以了。
或者 select uid,count(*) from u_f where fid in (1,2,3,4) group by uid having count(*)=4 --几个人就等于几 注意性能
|