mysql 多对多查询语句
时间: 2023-09-09 08:09:34 浏览: 42
在 MySQL 中进行多对多关系的查询需要使用 JOIN 操作。以下是一些常见的多对多查询语句示例:
1. 获取学生选择的所有课程:
```sql
SELECT students.student_name, courses.course_name
FROM students
JOIN enrollments ON students.student_id = enrollments.student_id
JOIN courses ON enrollments.course_id = courses.course_id;
```
2. 获取选择了特定课程的所有学生:
```sql
SELECT students.student_name, courses.course_name
FROM students
JOIN enrollments ON students.student_id = enrollments.student_id
JOIN courses ON enrollments.course_id = courses.course_id
WHERE courses.course_name = 'Math';
```
3. 获取没有选择任何课程的学生:
```sql
SELECT students.student_name
FROM students
LEFT JOIN enrollments ON students.student_id = enrollments.student_id
WHERE enrollments.student_id IS NULL;
```
4. 获取每门课程选择的学生数量:
```sql
SELECT courses.course_name, COUNT(enrollments.student_id) AS student_count
FROM courses
LEFT JOIN enrollments ON courses.course_id = enrollments.course_id
GROUP BY courses.course_name;
```
这些查询语句中使用了 JOIN 操作,通过连接学生表(students)、选课表(enrollments)和课程表(courses),根据需要筛选和聚合数据。请根据您的具体表结构和需求进行适当的调整和修改。