代码之家  ›  专栏  ›  技术社区  ›  Jon Davis Glenn Block

对于联接表中计数为X或至少为X或最多为X的ID,最佳的T-SQL语法是什么?

  •  2
  • Jon Davis Glenn Block  · 技术社区  · 14 年前

    在T-SQL中执行类似操作的最佳方法是什么?

    SELECT DISTINCT ID
    FROM Members,
    INNER JOIN Comments ON Members.MemberId = Comments.MemberId
    WHERE COUNT(Comments.CommentId) > 100
    

    3 回复  |  直到 14 年前
        1
  •  7
  •   Will A    14 年前

    这会让你得到你想要的。我不是说这绝对是最好的方法,但你不可能找到更好的方法。

    SELECT ID
    FROM   Members
    INNER JOIN Comments
    ON Members.MemberId = Comments.MemberId
    GROUP BY ID
    HAVING COUNT(*) > 100
    
        2
  •  1
  •   Dustin Laine    14 年前

    SELECT DISTINCT m.ID
    FROM Members m
    WHERE (SELECT COUNT(c.CommentID)
           FROM Comments c
           WHERE c.MemberID = m.MemberID) > 100
    
        3
  •  1
  •   LittleBobbyTables - Au Revoir    14 年前

    SELECT ID
    FROM Members
    INNER JOIN (SELECT MemberID FROM Comments 
         GROUP BY MemberID HAVING COUNT(CommentId) > 100) 
    AS CommentCount ON Members.MemberID = CommentCount.CommentID