ms-access中的左联接与内部联接

我必须在访问数据库中运行以下查询:
    SELECT School.Name, Student.Name, Grade.Grade
    FROM( (`School` `School` LEFT JOIN `Student` `Student` ON `School`.`ID`=`Student`.`SchoolID`) INNER JOIN `Grade` `Grade` ON `Student`.`GradeID` = `Grade`.`ID`)
这给了我错误“不支持联接表达式”,但是如果我将LEFT JOIN更改为INNER JOIN,它将正确运行。我认为在ms-access上同时使用这两种联接的方式可能会有不同的方式。任何人都可以告诉我此查询出了什么问题和/或不支持此查询的原因。 谢谢     
已邀请:
我在Access \的查询设计器中重新创建了您的查询。如您所见,该查询与两个联接都以INNER一起工作。但是,当我尝试将第一个INNER JOIN切换为LEFT JOIN时,查询设计者抱怨“模糊的外部联接”。两种连接的LEFT都有效,两种连接的INNER都一样。 如果第一个联接需要LEFT,第二个联接需要INNER,则可以将表从第二个联接移到子查询中。
SELECT
    School.[Name] AS school_name,
    sub.[Name] AS student_name,
    sub.Grade
FROM
    School LEFT JOIN (
        SELECT
            Student.SchoolID,
            Student.[Name],
            Grade.Grade
        FROM
            Student INNER JOIN Grade
            ON Student.GradeID = Grade.ID) AS sub
    ON School.ID = sub.SchoolID;
    
Student
.
GradeID
可能为空,因为您在Student上进行了LEFT JOIN操作,因此第二次连接可能不存在。 因此,基本上,每当您进行LEFT JOIN时,都无法在以后的JOINS中使用任何TABLES列     
from和join语法错误。
SELECT School.Name, Student.Name, Grade.Grade
FROM Grade
 left join Student on ...
 left join School on  ...
其中\“ ... \”是\“ <主键> = <外键> \”。     

要回复问题请先登录注册