从关联表中获取数据的Sql查询

从关联表中获取数据的Sql查询,sql,relation,jointable,Sql,Relation,Jointable,我必须从两个表中获取数据 (主键)=主键 (FK)=外键 TABLE1- [STUDENTS] s_id(PK) name other 1 a z 2 b z 3 c z 我想显示当前班级的学生(最后分配的班级) 表关系如下所示 学生被录取后,被分配到1班 1年后,在[STUDENT-CLASS]表中插入一条新记录,为每个或某些学生分配新班级 我想这样展示 s_i

我必须从两个表中获取数据
(主键)=主键
(FK)=外键

TABLE1- [STUDENTS]
s_id(PK)     name    other
1             a        z
2             b        z
3             c        z


我想显示当前班级的学生(最后分配的班级)
表关系如下所示
学生被录取后,被分配到1班
1年后,在[STUDENT-CLASS]表中插入一条新记录,为每个或某些学生分配新班级
我想这样展示

s_id       name    other     [STUDENT-CLASS].Class_id    [CLASSES].class_nam
1         a        z                  3                        7th
2         b        z                  2                        6th
3         c        z                  1                        5th
Select S.studentid, s.name, s.other, c.classid, c.classname
 from 
 (Select studentid, Max(Classid) as 'currentclassid' from StudentClassTable group by studentid) A
  inner join StudentTable S on A.studentid = S.Studentid 
  inner join ClassTable C on A.CurrentClassid = C.Classid

试试这样的

s_id       name    other     [STUDENT-CLASS].Class_id    [CLASSES].class_nam
1         a        z                  3                        7th
2         b        z                  2                        6th
3         c        z                  1                        5th
Select S.studentid, s.name, s.other, c.classid, c.classname
 from 
 (Select studentid, Max(Classid) as 'currentclassid' from StudentClassTable group by studentid) A
  inner join StudentTable S on A.studentid = S.Studentid 
  inner join ClassTable C on A.CurrentClassid = C.Classid

下面的查询将完成这项工作

SELECT student_id, name, other, b.last_class_id, c.class_name
FROM STUDENTS a
LEFT JOIN (SELECT student_id, max(class_id) As last_class_id 
           FROM student_class
           GROUP BY student_id) b ON a.student_id = b.student_id
LEFT JOIN CLASSES c ON c.class_id = b.last_class_id

是的,这是可能的。我们可以知道你试过什么吗?