再来个语句,请高手帮忙简化,呵呵
SELECT   name, 
                               (SELECT   COUNT(id) 
                            FROM   userinfo 
                            WHERE   politics   =   a.id   AND   id   IN 
                                                          (SELECT   id 
                                                       FROM   student 
                                                       WHERE   class   IN 
                                                                                     (SELECT   id 
                                                                                  FROM   class 
                                                                                  WHERE   f_grade_id   =   1)))   AS   todal 
 FROM   dbo.basicmess   A 
 WHERE   (type   =   7)
------解决方案--------------------try     
 SELECT A.name, 
 COUNT(E.id) AS todal 
 FROM dbo.basicmess A 
 Left Join 
 (Select B.id, B.politics From userinfo B 
 Inner Join student C On B.id = C.id 
 Inner Join class D On C.class = D.id  
 Where D.f_grade_id = 1) E 
 On A.id = E.politics 
 WHERE (A.type = 7) 
 Group By A.name