【发布时间】:2011-01-01 00:50:13
【问题描述】:
我有三个表格,包含这些字段:
类:class_id |姓名 |等级
classes_students:class_id |学生号
学生:student_id |名字
班级与学生是一对一的关系,所以一个班级可以有很多学生。我想选择特定班级的所有学生,其中 class_id 为 5。
我可以做这样的事情吗?
SELECT student.name FROM students student
LEFT JOIN classes_students link
ON link.class_id = 5
AND link.student_id = student.student_id
我不确定我是否需要在这里加入,是否必须是“左加入”?我想要的只是一个包含学生姓名的记录集。
【问题讨论】:
-
您所做的以下陈述并不完全正确:“班级与学生具有 1:n 关系,因此一个班级可以有很多学生”。事实上,班级和学生之间的关系是n:n,因为一个班级可以有很多学生而一个学生可以有很多班级。因此需要您的
classes_students表。如果它真的是 1:n 关系,则不需要classes_students表。