以第三范式组合数据库表

时间:2014-01-14 13:34:37

标签: sql database relational-database

我有一个包含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问题,但我没有做过一年的严肃查询(生锈)。

2 个答案:

答案 0 :(得分:1)

按照表格中的外键。表学生链接到favorite_colorId和favorite_collegeID。当你根据studentId加入反对这两个人的时候,你会收到ColorId和CollegeId。一旦你拥有了这两个你可以内部加入桌子颜色和表学院。

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

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

答案 1 :(得分:1)

    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