一个SQL查询语句的问题,请求帮助。

来源:百度知道 编辑:UC知道 时间:2024/09/23 04:07:00
表A:
编号 姓名
1022 李飞
1023 张龙
1025 东陵

表B
编号 姓名编号
1 1022
2 1022
3 1023

现在要查询出表A的所有数据,并且显示出表B中表A姓名编号出现的次数。
结果:
编号 姓名 出现次数
1022 李飞 2
1023 张龙 1
1025 东陵 0

希望看明白的朋友帮我下出来啊。谢谢了啊
如果再加一个类别表怎么写了。

表A:
编号 类别编号 姓名
1022 2001 李飞
1023 2002 张龙
1025 2003 东陵

表B
编号 姓名编号
1 1022
2 1022
3 1023

表C
类别编号 类别名称
2001 化学
2002 英语
2003 数学

现在要查询出表A的所有数据,并且显示出表B中表A姓名编号出现的次数和相应的类别名称。
结果:
编号 姓名 类别 出现次数
1022 李飞 化学 2
1023 张龙 英语 1
1025 东陵 数学 0

如果有看明白的高手朋友,请帮我解决下啊。谢谢啦 。

问题补充:

如果再加一个类别表怎么写了
---------------------------
select a.编号,a.姓名,c.类别名称,
count(b.姓名编号) as 出现次数
from a
inner join c on c.类别编号=a.类别编号
left join b on a.编号=b.姓名编号
group by a.编号,a.姓名 ,c.类别名称

SELECT a.编号,a.姓名,d.类别名,isnull(c.num) FROM A,
(select 编号,count(*) AS NUM from B group by 编号) AS C,
表C as d
where a.编号=c.编号
and a.类别编号=d.类别编号