可以使用 LEFT JOIN 和 GROUP BY 子句来查询选修课程数低于3门的学生信息,包括0门。以下是一种可能的 SQL 语句:
```
SELECT students.id, students.name, COUNT(scores.course_id) AS num_courses
FROM students
LEFT JOIN scores ON students.id = scores.student_id
GROUP BY students.id, students.name
HAVING COUNT(scores.course_id) < 3 OR COUNT(scores.course_id) IS NULL;
```
解释一下这个 SQL 语句:
1. 首先在 FROM 子句中列出需要查询的表。
2. 然后使用 LEFT JOIN 连接 students 表和 scores 表,以便获取每个学生的选修课程数。
3. 在 SELECT 子句中选择学生的 ID、姓名和选修课程数,并使用 COUNT 函数计算选修课程数。
4. 在 GROUP BY 子句中按照学生的 ID 和姓名分组。
5. 最后使用 HAVING 子句筛选出选修课程数低于3门或者没有选修课程的学生。
需要注意的是,由于要包括没有选修课程的学生,所以需要使用 LEFT JOIN 而不是 INNER JOIN。