subject 表,可以理解为分类表。
course 和 source_book 两个表分别关联了 subject现在要以subject表作为主表,查询该分类下有多少个课程,多少本书。
SELECT
`subject`.sid,
COUNT( course.id ) AS course_count
FROM
`subject`
LEFT JOIN `course` ON `subject`.`sid` = `course`.`sid`
GROUP BY
`subject`.`sid`
查询结果:
sid |
course_count |
s@_5a61cb6e8d76c11548vIrM |
5 |
s@_5a65bd36d97902207DvomQ |
10 |
s@_5a65bd36dc7ec2207LdZAM |
52 |
s@_5a65bd36deea72207Flx2K |
34 |
s@_5a65bd36e3cae22075HcSq |
143 |
s@_5a65bd36f26dc2207Y9s5m |
1200 |
SELECT
`subject`.sid,
COUNT( book.id ) AS book_count
FROM
`subject`
LEFT JOIN `book` ON `subject`.`sid` = `book`.`sid`
GROUP BY
`subject`.`sid`
sid |
book_count |
s@_5a61cb6e8d76c11548vIrM |
4 |
s@_5a65bd36d97902207DvomQ |
0 |
s@_5a65bd36dc7ec2207LdZAM |
0 |
s@_5a65bd36deea72207Flx2K |
0 |
s@_5a65bd36e3cae22075HcSq |
2 |
s@_5a65bd36f26dc2207Y9s5m |
1176 |
那么,如何将这两条sql语句联合起来,查询出这样的结果?
sid |
course_count |
book_count |
s@_5a61cb6e8d76c11548vIrM |
5 |
4 |
s@_5a65bd36d97902207DvomQ |
10 |
0 |
s@_5a65bd36dc7ec2207LdZAM |
52 |
0 |
s@_5a65bd36deea72207Flx2K |
34 |
0 |
s@_5a65bd36e3cae22075HcSq |
143 |
2 |
s@_5a65bd36f26dc2207Y9s5m |
1200 |
1176 |
我理解,大致应该是这样的.
用
subject.sid
分别去course
,book
表查询各自的数量.