求一个简单的sql语句

wsaxie 2009-12-23 04:50:59
buyuser表
id car_id
1 1
2 1
3 2
4 6

cars表
car_id car_name
1 宝马
2 奔驰
3 甲壳虫
4 广州丰田
5 大众
6 标致
7 福特

汇总表
car_id car_name count
1 宝马 2
2 奔驰 1
3 甲壳虫 0
4 广州丰田 0
5 大众 0
6 标致 1
7 福特 0

如何用sql语句实现buyuser表汇总后加入cars得到汇总表效果
...全文
128 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
fwacky 2009-12-23
  • 打赏
  • 举报
回复

create table buyuser ( [id] int , car_id int)
insert into buyuser values( 1 , 1 )
insert into buyuser values( 2 , 1 )
insert into buyuser values( 3 , 2 )
insert into buyuser values( 4 , 6 )

create table cars ( car_id int, car_name varchar(50))
insert into cars values( 1 , '宝马')
insert into cars values( 2 , '奔驰')
insert into cars values( 3 , '甲壳虫')
insert into cars values( 4 , '广州丰田')
insert into cars values( 5 , '大众')
insert into cars values( 6 , '标致')
insert into cars values( 7 , '福特')

select *, count =(select count(1)from buyuser where car_id = A.car_id ) from cars A
==============
car_id car_name count
----------- -------------------------------------------------- -----------
1 宝马 2
2 奔驰 1
3 甲壳虫 0
4 广州丰田 0
5 大众 0
6 标致 1
7 福特 0

(7 行受影响)

mbh0210 2009-12-23
  • 打赏
  • 举报
回复

declare @buyuser TABLE( [id] int , car_id int)
insert into @buyuser values( 1 , 1 )
insert into @buyuser values( 2 , 1 )
insert into @buyuser values( 3 , 2 )
insert into @buyuser values( 4 , 6 )

declare @cars table( car_id int, car_name varchar(50))
insert into @cars values( 1 , '宝马')
insert into @cars values( 2 , '奔驰')
insert into @cars values( 3 , '甲壳虫')
insert into @cars values( 4 , '广州丰田')
insert into @cars values( 5 , '大众')
insert into @cars values( 6 , '标致')
insert into @cars values( 7 , '福特')


select a.* ,isnull(b.[count],0) as [count] from @cars a
left outer join( select car_id,count(*) as [count] from @buyuser group by car_id )b on b.car_id =a.car_id
cailee 2009-12-23
  • 打赏
  • 举报
回复
修正:

select a.car_id,a.car_name,isnull(b.cnt,0) as count
from cars a left join
(
select car_id,count(id) as cnt
from buyuser
group by car_id
)b
on a.car_id=b.car_id
cailee 2009-12-23
  • 打赏
  • 举报
回复
select a.car_id,a.car_name,isnull(b.cnt,0) as count
from cars a left join
(
select car_id,count(id) as cnt
from buyuser
)b
on a.car_id=b.car_id

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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