以第三范式组合数据库表



我有一个包含 5 个表的关系数据库

1. student (Name, StudentID)
2. favorite_colorID (StudentID, ColorID)
3. favorite_collegeID (StudentID, CollegeID)
4. color (ColorID, Color)
5. college (CollegeID, College)

我想提出一个只打印出Name, Color, and College的查询

这可能是一个简单的 JOIN 问题,但我已经一年没有做过认真的查询了(lil rusty)。

    select s.name, c.color, co.college 
from student s inner join favorite_colorId fc on s.studentId = fc.studentId 
inner join color c on fc.colorId = c.colorId 
inner join favorite_collegeId fco on s.studentId = fco.studentId 
inner join college co on fco.collegeId = co.collegeId

跨表跟踪外键。表学生链接到favorite_colorId和favorite_collegeID。当您根据学生ID与这两个内部连接时,您将收到ColorId和CollegeId。一旦你拥有了这两个,你就可以在内部连接表格颜色和表格学院。

student -> favorite_colorID -> color
student -> favorite_collegeID -> college

我不想给你sql,但现在你知道了路径,我相信你可以做到。

最新更新