一个语句怎么查询下一级是否存在数据?

Mapleleaf123 2012-12-25 09:13:58
TB1
id name
1 a
2 b
3 c

TB2
id tb1_id name
1 1 aa
2 1 aaa
3 3 cc


要查询出结果

TB1.id , TB1.name , TB2.count
1 a 2
2 b 0
3 c 1
...全文
114 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
我的tcl 2012-12-25
  • 打赏
  • 举报
回复
create table TB1
(
	ID INT,
	name varchar(10)
)
create  table TB2
(
	id int,
	tb1_id int,
	name varchar(10)
)
insert into  TB1 select 1,'a'
union all select 2 ,'b'
union all select 3,'c'

insert into TB2 select 1,1,'aa'
union all select 2,1,'aaa'
union all select 3,3,'cc'

select TB1.ID,TB1.name,count(TB2.tb1_id)as TB2_count FROM TB1 
LEFT JOIN TB2 ON TB1.ID=TB2.tb1_id 
group by tb1.ID,tb1.name
/*
ID	name	TB2_count
1	a	2
2	b	0
3	c	1
*/
-Tracy-McGrady- 2012-12-25
  • 打赏
  • 举报
回复
select TB1.id,TB1.name,count(*) from TB1,TB2 where TB1.id=TB2.tb1_id group by TB1.id,TB1.name
xuam 2012-12-25
  • 打赏
  • 举报
回复
selet TB1.id , TB1.name , isnull(count(TB2.*),0) from TB1 left join TB2 on TB1.id=TB2.id
Mapleleaf123 2012-12-25
  • 打赏
  • 举报
回复
提示:第 1 行: '.' 附近有语法错误。 这个TB2.count,这个COUNT列并不在TB2中有,是计算出来的结果的
xuam 2012-12-25
  • 打赏
  • 举报
回复
selet TB1.id , TB1.name , sum(isnull(TB2.count),0) from TB1 left join TB2 on TB1.id=TB2.id

34,576

社区成员

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

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