为了回答这个问题,我需要假设一些数据库表的结构。通常,一个学校的学生课程成绩信息会存储在以下三个表中:
1. `students` 表:存储学生信息。
2. `courses` 表:存储课程信息。
3. `enrollments` 表:存储学生选课信息,包括学生ID、课程ID和成绩。
以下是这些表的简化结构:
```sql
CREATE TABLE students (
student_id INT PRIMARY KEY,
name VARCHAR(100)
);
CREATE TABLE courses (
course_id INT PRIMARY KEY,
course_name VARCHAR(100)
);
CREATE TABLE enrollments (
student_id INT,
course_id INT,
grade DECIMAL(5, 2),
FOREIGN KEY (student_id) REFERENCES students(student_id),
FOREIGN KEY (course_id) REFERENCES courses(course_id)
);
```
基于上述表结构,以下是一个SQL查询,它将返回选修过课程的同学的姓名、课程名和成绩:
```sql
SELECT s.name AS student_name, c.course_name, e.grade
FROM students s
JOIN enrollments e ON s.student_id = e.student_id
JOIN courses c ON e.course_id = c.course_id;
```
这个查询使用了SQL的`JOIN`操作来连接三个表,从而能够从`students`表获取学生的姓名,从`courses`表获取课程名,并从`enrollments`表获取成绩。结果集将包含所有选修过至少一门课程的学生信息。