一个表A,其中主要有id,ac_id,content列,ac_id是外键,content是记录,一个外键可以对应一个或过个记录,我想查找有2个以上记录的ac_id,怎么写tsql语句?我试了几个都不行。汗。烦请大家指教。

解决方案 »

  1.   

    假如ac_id是B表的一个字段
    select A.*
    from A
    inner join (select count(*) as num ,ac_id from B group by ac_id having count(*)>=2) B
    on A.ac_id=B.ac_id
      

  2.   


    select * from 表A where id in(select id from 表a where count(distinct ac_id)>=2 group by id)
      

  3.   

    SELECT 
    AC_ID , 
    COUNT(DISTINCT CONTENT)CONTENT 
    FROM 

    WHERE  GROUP BY AC_ID HAVING COUNT(DISTINCT CONTENT)>2
    这样??
      

  4.   

    select * from A where acid in (select acid from B group by acid having count(*)>2)
      

  5.   


    SQL code
    SELECT 
    AC_ID , 
    COUNT(CONTENT)CONTENT 
    FROM 

    WHERE  GROUP BY AC_ID HAVING COUNT(CONTENT)>2
    去掉DISTINCT
      

  6.   

    我试了,4楼是正确的,看来关键是group by 和having的用法