V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
brikhoff
V2EX  ›  问与答

请教一个SQL查询语句写法

  •  
  •   brikhoff · 2013-09-22 16:26:05 +08:00 · 2277 次点击
    这是一个创建于 4083 天前的主题,其中的信息可能已经有所发展或是发生改变。
    类似与新浪微博共同关注的人。多对多的问题。关注表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
    rpx
        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 --几个人就等于几
    注意性能
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4469 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 05:33 · PVG 13:33 · LAX 21:33 · JFK 00:33
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.