复杂SQL查询问题

昔梦无痕 2009-05-22 10:23:17
现在有表A userlist,表B news
表A的里username字段和news里的adduser字段想对应
要求输出结果为

A.*,newscount

意思就是查询表A里的所有字段和表B news 里adduser为表A的username的新闻总个数,

说白了,就是查询出表A里的所有记录,然后在每条记录后面跟着这个用户名的在表B里的所添加记录的总条数,
这样的语句该怎么写?
谢谢各位大侠了。
...全文
60 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
pt1314917 2009-05-22
  • 打赏
  • 举报
回复
[Quote=引用楼主 superbirds 的帖子:]
现在有表A userlist,表B news
表A的里username字段和news里的adduser字段想对应
要求输出结果为

A.*,newscount

意思就是查询表A里的所有字段和表B news 里adduser为表A的username的新闻总个数,

说白了,就是查询出表A里的所有记录,然后在每条记录后面跟着这个用户名的在表B里的所添加记录的总条数,
这样的语句该怎么写?
谢谢各位大侠了。
[/Quote]

select a.*,b.newscount from userlist a,
(select adduser,newscount=count(*) from news group by adduser)b
where a.username=b.adduser
JonasFeng 2009-05-22
  • 打赏
  • 举报
回复
1楼的不对,稍微修改下。

SELECT A.USERNAME, COUNT(B.*) AS NEWSCOUNT 
FROM USERLIST A LEFT JOIN NEWS B
ON A.USERNAME = B.ADDUSER
GROUP BY A.USERNAME
  • 打赏
  • 举报
回复
同意楼上的...用内表
conan304 2009-05-22
  • 打赏
  • 举报
回复
select a.*,b.newscount
from userlist a left join
(select adduser,count(*) as newscount from news group by adduser)b
on a.username=b.adduser
lihan6415151528 2009-05-22
  • 打赏
  • 举报
回复
SELECT A.*,B.NEWSCOUNT FROM A LEFT JOIN B ON A.USERNAME = B.ADDUSER

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧