我的关注 |
¥0.1 sql语句如何同时获取当前表数据同时获取相关联表对应数据的数目?
0

1.jobs表{id,name} //表示一个作业
2.submitjobs表(id,jobid,userid) jobid关联Jobs表的id //对应一个学生对某次作业的一次提交。
比如:
jobs:

id name
1 作业1
2 作业2

sumbmitjobs:

id jobid userid
1 1 user1
2 1 user2
3 1 user3

现在想获取jobs表里的信息:select * from jobs。同时获取每个作业当前有多少同学提交作业。请问如何写?

大智若愚
修改
评论(0)
2个回答
0
采纳

先子查询获取数量统计,然后联表。
select a.,b. from jobs a left join (select jobid,count(1) submitcount from submitjobs group by jobid) b on a.id=b.jobid;
备注:当submitjobs表数据量大的时候性能较低。
如果在子查询中有where筛选,可以提升性能。

采纳答案
佛法不二
修改
评论 (0)
0
采纳

另一种写法:
select a.*,(select count(1) from submitjobs s where a.id=s.jobid) submitcount from jobs a;

采纳答案
hong
修改
评论 (0)
撰写回答