可以使用 LEFT JOIN 来查询所有同学的基本信息及选课情况(包含未选课同学的信息)。以下是一种可能的 SQL 语句:
```
SELECT students.id, students.name, courses.name AS course_name
FROM students
LEFT JOIN scores ON students.id = scores.student_id
LEFT JOIN courses ON scores.course_id = courses.id;
```
解释一下这个 SQL 语句:
1. 首先在 FROM 子句中列出需要查询的表。
2. 然后使用 LEFT JOIN 连接 students 表和 scores 表,以便获取所有同学的选课情况。由于使用了 LEFT JOIN,即使某些同学没有选课,也会在结果集中出现他们的信息。
3. 接着使用 LEFT JOIN 连接 scores 表和 courses 表,以便获取每个同学所选的课程名称。
4. 最后使用 SELECT 子句选择需要显示的字段,包括同学的 ID、姓名和所选的课程名称。
需要注意的是,在连接 scores 表和 courses 表时需要使用 LEFT JOIN,以便获取所有同学的信息,即使他们没有选课。同时,在 SELECT 子句中使用 AS 关键字来为课程名称字段指定别名,以便更好地阅读结果集。