首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

求一简单的SQL查询语句解决思路

2012-01-31 
求一简单的SQL查询语句两张表STUIDSTUNAMES1张三S2李四S3赵五STUIDCLASSIDS11S12S13S14S31S34查询结果STUS

求一简单的SQL查询语句
两张表
STUID   STUNAME
S1         张三
S2         李四
S3         赵五


STUID   CLASSID
S1         1
S1         2
S1         3
S1         4
S3         1
S3         4

查询结果
STU       STUNAME   CLASSCOUNT
S1         张三           4
S2         李四           0
S3         赵五           2


[解决办法]
create table tb1(STUID varchar(2),STUNAME varchar(10))
insert tb1
select 'S1 ', '张三 '
union select 'S2 ', '李四 '
union select 'S3 ', '赵五 '


create table tb2(STUID varchar(2),CLASSID int)
insert tb2
select 'S1 ',1
union select 'S1 ',2
union select 'S1 ',3
union select 'S1 ',4
union select 'S3 ',1
union select 'S3 ',4


select a.STUID,a.STUNAME,CLASSCOUNT=count(b.CLASSID)
from tb1 a left join tb2 b on a.STUID=b.STUID
group by a.STUID,a.STUNAME

drop table tb1,tb2


/*
STUID STUNAME CLASSCOUNT
----- ---------- -----------
S2 李四 0
S1 张三 4
S3 赵五 2

(3 row(s) affected)

*/
[解决办法]
create table tab1(STUID varchar(2),STUNAME varchar(6))
insert tab1
select 'S1 ', '张三 ' union all
select 'S2 ', '李四 ' union all
select 'S3 ', '赵五 '

create table tab2(STUID varchar(2),CLASSID int)
insert tab2
select 'S1 ',1 union all
select 'S1 ',2 union all
select 'S1 ',3 union all
select 'S1 ',4 union all
select 'S3 ',1 union all
select 'S3 ',4

--查询结果
--STU STUNAME CLASSCOUNT
--S1 张三 4
--S2 李四 0
--S3 赵五 2
select tab1.STUID,tab1.STUNAME,count(tab2.CLASSID)
from tab1 left join tab2 on tab1.STUID=tab2.STUID
group by tab1.STUID,tab1.STUNAME

drop table tab1,tab2

热点排行