这个问题涉及到SQL查询的理解,特别是子查询的使用。
给定的SQL语句是:
```sql
SELECT * FROM student WHERE studentID IN (SELECT studentID FROM scores WHERE score < 60);
```
这段SQL语句的意思是:从`student`表中选择那些在`score`表中有不及格记录(分数小于60)的学生。
根据题目描述:
- `student`表中有50个学生。
- `scores`表中有45个参加考试的学生。
- 其中有10个学生考试不及格(分数小于60)。
子查询 `(SELECT studentID FROM scores WHERE score < 60)` 会返回所有不及格学生的`studentID`,根据题目,这个子查询会返回10条记录(对应那10个不及格的学生)。
然后,主查询 `SELECT * FROM student WHERE studentID IN (...)` 会从`student`表中选择那些`studentID`在子查询结果中的记录。由于子查询返回了10个不及格学生的`studentID`,主查询会返回这10个学生的完整记录。
因此,执行这条SQL语句会返回10条记录。
正确答案是:C: 10。