V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
brikhoff
V2EX  ›  问与答

请教一个SQL查询语句写法

  •  
  •   brikhoff · Sep 22, 2013 · 2831 views
    This topic created in 4610 days ago, the information mentioned may be changed or developed.
    类似与新浪微博共同关注的人。多对多的问题。关注表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 replies    1970-01-01 08:00:00 +08:00
    rpx
        1
    rpx  
       Sep 22, 2013   ❤️ 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 --几个人就等于几
    注意性能
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   979 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 22:16 · PVG 06:16 · LAX 15:16 · JFK 18:16
    ♥ Do have faith in what you're doing.