SQL如何根据其他列从其他表中获取列

时间:2014-11-30 01:02:38

标签: sql ms-access

我需要获得像

这样的值

AdviserInit, AdviserSurname, MaterialName and Area使用AdviserID, MaterialID and AreaCode中的Chores Table作为参考。

我不知道创建查询的方法是什么。这是我到目前为止所提出的:

 SELECT Chores.ChoresID, Chores.ChoresDate, Materials.MaterialName,
        Advisers.AdviserInit,     Advisers.AdviserSurname, Area.Area,
        Chores.StudentID     
 FROM Chores INNER JOIN Materials on Chores.MaterialID = Materials.MaterialID     
      INNER JOIN Advisers on Chores.AdviserID = Advisers.AdviserID     
      INNER JOIN Area on Chores.AreaCode = Area.AreaCode

以下是表格之间关系的屏幕截图:

Table relationships

1 个答案:

答案 0 :(得分:1)

如果要使用主要的Chores Table映射所有表,

,可以尝试此查询
SELECT Chores.ChoresID, Chores.ChoresDate, Materials.MaterialName,
       Advisers.AdviserInit,Advisers.AdviserSurname, Area.Area,
       Chores.StudentNo, Student.Forename    
FROM (((Chores INNER JOIN Materials on Chores.MaterialID = Materials.MaterialID)     
     INNER JOIN Advisers on Chores.AdviserID = Advisers.AdviserID)     
     INNER JOIN Area on Chores.AreaCode = Area.AreaCode)
     INNER JOIN Student on Student.StudentNo =  Chores.StudentNo

括号的放置在这里很重要。基本上,你需要在from子句之后留下n - 2个左括号,并且在每个新join clause开始之前有一个右括号,除了第一个,其中n是tables的数量和joined在一起。

原因是Access的连接语法一次只支持连接两个表,所以如果你需要加入两个以上的表,你需要将额外的表括在括号中。