解决方案 »

  1.   

    你这个问题还有很大改进空间,但是看你的语句。我觉得说多了你不一定看得懂,你试试这个脚本吧,比较暴力,但是应该能出你要的结果SELECT  a.* ,
            b.a_count
    FROM    ( SELECT  DISTINCT
                        COUNT(b.UserId) AS u_count ,
                        a.[TeachingClasses]
              FROM      [dbo].[Classes] a
                        LEFT JOIN [Classes_User] b ON a.[TeachingClasses] = b.[TeachingClasses]
              GROUP BY  a.[TeachingClasses]
            ) a
            INNER JOIN ( SELECT  DISTINCT
                                COUNT(c.UserId) AS a_count ,
                                a.[TeachingClasses]
                         FROM   [dbo].[Classes] a
                                LEFT JOIN [dbo].[Classes_ApproveUser] c ON a.[TeachingClasses] = c.[TeachingClasses]
                         GROUP BY a.[TeachingClasses]
                       ) b ON a.[TeachingClasses] = b.[TeachingClasses]
      

  2.   

    将两个多表查询的结果进行inner join,够暴力的,我喜欢。终于解决了!!!