1.jobs表{id,name} //表示一个作业
2.submitjobs表(id,jobid,userid) jobid关联Jobs表的id //对应一个学生对某次作业的一次提交。
比如:
jobs:
1,作业1
2,作业2
sumbmitjobs:
1,1,user1
2, 1,user2
3, 1,user3
现在想获取jobs表里的信息:select * from jobs。同时获取每个作业当前有多少同学提交作业。
请问如何写?
1.jobs表{id,name} //表示一个作业
2.submitjobs表(id,jobid,userid) jobid关联Jobs表的id //对应一个学生对某次作业的一次提交。
比如:
jobs:
1,作业1
2,作业2
sumbmitjobs:
1,1,user1
2, 1,user2
3, 1,user3
现在想获取jobs表里的信息:select * from jobs。同时获取每个作业当前有多少同学提交作业。
请问如何写?
mysql 为例:select a.*,count(b.userid)sbtotal from jobs a left join sumbmitjobs b on b.jobid=a.id gourp by b.jobid order b.userid
oracle 差不多 只是不能那样分组需要先分组sumbmitjobs 统计好然后作为子查询
SELECT COUNT(DISTINCT column(jobName)) FROM jobs LEFT JOIN submitjobs ON jobs.jobName=submitjobs.jobName
select b.name, a.cnt from
jobs b left join (select jobid, count(userid) as cnt
from submitjobs
group by jobid) a
on b.id = a.jobid
没测试...
SELECT j.id, j.name, COUNT(sj.jobid) AS count
FROM `submitjobs`
AS sj
JOIN `jobs`
AS j
WHERE sj.jobid = j.id
GROUP BY sj.jobid
5 回答3.2k 阅读✓ 已解决
3 回答3.6k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
1 回答2.4k 阅读✓ 已解决
1 回答2.3k 阅读✓ 已解决
5 回答1.4k 阅读
3 回答1.2k 阅读✓ 已解决