统计选课门数时sc应为主表,使用COUNT函数进行计数
正确答案是 A
### 分析:
1. **表结构与需求**:
- `student` 表包含学生的基本信息。
- `sc` 表记录学生选课情况。
- 需求是统计每个学生的姓名和他们选课的门数。
2. **连接方式**:
- `LEFT JOIN`:返回左表(`student`)的所有记录,以及右表(`sc`)中满足连接条件的记录。如果右表中没有匹配的记录,则结果中包含左表的记录,并且右表的字段为NULL。
- `RIGHT JOIN`:返回右表(`sc`)的所有记录,以及左表(`student`)中满足连接条件的记录。如果左表中没有匹配的记录,则结果中包含右表的记录,并且左表的字段为NULL。
3. **选项分析**:
- **A**: 使用 `RIGHT JOIN`,统计的是 `sc` 表中的记录,统计每个学生的选课门数,并且使用 `GROUP BY` 按学生姓名进行分组,这是最合适的。
- **B**: 使用 `LEFT JOIN`,从 `student` 表出发,如果有些学生选修了课程,但是在`student`表中没有记录学生的信息,这会导致统计结果不正确。
- **C**: 使用 `RIGHT JOIN`,但没有 `GROUP BY`,只使用 `ORDER BY`,会导致统计结果不正确。
- **D**: 使用 `LEFT JOIN`,但统计的是 `student.sno` 的数量,而不是 `sc.sno`,这会导致统计结果不正确。