如果读取发表文章最多的10个用户。。用户文章2个表 文章表里面有uid 作为表示 不存在主外建 仅仅是文字表里面有个uid 是用户的id 不知道大大能不能明白 3q sql server 2005数据库
5 回答
慕雪6442864
TA贡献1812条经验 获得超5个赞
你们都是坑分的 。。我写出来了 。。贴出来吧
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 )
喵喔喔
TA贡献1735条经验 获得超5个赞
@单音节: 楼主明确了表结构,
语句优化下:
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名
郎朗坤
TA贡献1921条经验 获得超9个赞
SELECT TOP 10 uid, COUNT(*) AS Total FROM topic GROUP BY uid ORDER BY Total DESC
- 5 回答
- 0 关注
- 579 浏览
添加回答
举报
0/150
提交
取消