select a.id,a.name,count(*) [count]
   from t1 a
inner join t2 b
   on a.id=b.sign
   where a.pt=10
   group by a.id,a.name

解决方案 »

  1.   

    谢谢,不过这样的话 如果t2的sign没有与t1 的id关联的,就取不到数据。
    可以不可以这样,t2的sign没有与t1 关联的,那吗count 就是0
      

  2.   

    inner join ==>改為left join即可
      

  3.   

    将inner join改为left join即可.
      

  4.   

    select a.id,a.name,ISNULL(count(b.sign),0) [count]
       from t1 a
    left join t2 b
       on a.id=b.sign
       where a.pt=10
       group by a.id,a.name
      

  5.   

    如果没有关联 是这样:
    t1                                 t2 
    id     name     pt                   id     name   sign 
    1         a         10                1       XX        
    2         b         10                2       XX       
    3         c         10                3       XX       
                                         4       XX       
                                          5       XX       
                                          6       XX       
                                          7       XX       
    t1中的   id   与t2中的   sign关联。 
    希望找出   t1=10的数据如下: 
    id     name     count 
    1       a             0 
    2       b             0 
    4       c             0