你们都是坑分的 。。我写出来了 。。贴出来吧
SELECT * FROM wj_User WHERE wj_ID IN
(SELECT TOP 10 A.n_uid FROM
(SELECT COUNT(*) c,n_uid FROM News WHERE n_uid!='0' GROUP BY News.n_uid ) A ORDER BY A.c DESC )
@单音节: 楼主明确了表结构,语句优化下:
SELECT *
FROM wj_User a
INNER JOIN ( SELECT TOP 10
A1.n_uid, COUNT(*) AS Total
FROM News A1
WHERE A1.n_uid != '0'
GROUP BY A1.n_uid
ORDER BY Total DESC
) b ON a.wj_ID = b.n_uid
效率应该好于in的查询,并且声调了冗余的子查询选择 前10名