现在我想知道每个学生学了几门课(自我感觉这是个很普通的目的,一点也不刁钻),我希望得到的答案是{(A, 2), (B, 0)}
于是我这样
select student.sname, count(study.cname) from student, study where student.sname=study.sname group by student.sname
但得出的结果是{(A, 2)}。没有B,因为B没有学任何课。
有没有什么办法达到这个目的?不能有嵌入查询,最好不要创建临时表。
mysql> select student.sname, count(study.cname) from student, study where student.sname=study.sname group by student.sname;
+-------+--------------------+
| sname | count(study.cname) |
+-------+--------------------+
| A | 2 |
+-------+--------------------+
1 row in set (0.00 sec)