求sql,各位大侠帮忙啊,谢谢

打酱油的无证程序猿 2013-09-07 10:03:44

表tab_a
------------------------
AID (文章ID) clickCount(点击数)
1 10
2 20
3 0

表tab_b
------------------------
BID AID (文章ID) clickby(点击人)
1 1 张三
2 1 李四
3 2 张三


想要得到的结果集合是
AID clickCount clickby
1 10 张三
1 10 李四
2 20 张三
3 0 nil

请问这个sql怎么写,谢谢各位大侠啊。。。


...全文
169 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
唐诗三百首 2013-09-07
  • 打赏
  • 举报
回复

create table tab_a
(AID int, clickCount int)

insert into tab_a
 select 1, 10 union all
 select 2, 20 union all
 select 3, 0    
   
create table tab_b
(BID int, AID int, clickby varchar(10))

insert into tab_b
 select 1, 1, '张三' union all
 select 2, 1, '李四' union all
 select 3, 2, '张三'


select a.AID,a.clickCount,b.clickby
 from tab_a a
 left join tab_b b on a.AID=b.AID

/*
AID         clickCount  clickby
----------- ----------- ----------
1           10          张三
1           10          李四
2           20          张三
3           0           null

(4 row(s) affected)
*/
Andy__Huang 2013-09-07
  • 打赏
  • 举报
回复
create table tab_a(AID int,clickCount int)
insert into tab_a
select 1,10
union all select 2,20
union all select 3,0

create table tab_b(BID int,AID int,clickby varchar(10))
insert into tab_b
select 1,1,'张三'
union all select 2,1,'李四'
union all select 3,2,'张三'

select A.AID,A.clickCount,B.clickby
from tab_a a
left join tab_b b on B.AID=A.AID

/*
AID	clickCount	clickby
-----------------
1	10	张三
1	10	李四
2	20	张三
3	0	NULL
*/
zxjocy 2013-09-07
  • 打赏
  • 举报
回复

SELECT B.AID,ISNULL(SUM(a.clickCount),0) clickCount,B.clickby FROM tab_b b LEFT JOIN tab_a a
ON b.AID = a.AID
---涛声依旧--- 2013-09-07
  • 打赏
  • 举报
回复


select t1.AID,isnull(sum(clickCount),0) as clickCount,isnull(t2.clickby,'nil') clickby
from tab_a t1 (nolock)
right join tab_b t2 (nolock) on t1.AID=t2.AID
GROUP BY t1.AID,t2.clickby

Andy__Huang 2013-09-07
  • 打赏
  • 举报
回复
select B.BID,A.clickCount,A.clickby
from tab_b b
left join tab_a a on B.AID=A.AID

---涛声依旧--- 2013-09-07
  • 打赏
  • 举报
回复

select t1.AID,isnull(sum(clickCount),0) as clickCount,t2.clickby
from tab_a t1 (nolock)
right join tab_b t2 (nolock) on t1.AID=t2.AID
GROUP BY t1.AID,t2.clickby
sqlkxr 2013-09-07
  • 打赏
  • 举报
回复
你那个是nil,还是null 这不是左匹配就行了吗 select a.aid,a.clickcount,b.clickby from tab_a a left join tab_b on a.aid=b.bid

34,571

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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