在ms-access中与内连接一起左连接

Dul*_*ttu 4 ms-access inner-join left-join

我必须在访问数据库中运行以下查询:

    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`)
Run Code Online (Sandbox Code Playgroud)

这给了我错误"不支持连接表达式",但如果我将LEFT JOIN更改为INNER JOIN,它会正确运行.我认为在ms-access上同时使用这两个连接的方式可能有不同的方式.任何人都可以告诉我这个查询有什么问题和/或不支持这个问题的原因.

谢谢

Han*_*sUp 7

我在Access的查询设计器中重新创建了您的查询.正如您所发现的那样,查询使用两个连接作为INNER.但是,当我尝试将第一个INNER JOIN切换为LEFT JOIN时,查询设计者抱怨"模糊的外连接".两个连接的左边都有效,两个都是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;
Run Code Online (Sandbox Code Playgroud)