Ms access Microsoft Access SQL联接

Ms access Microsoft Access SQL联接,ms-access,Ms Access,对于有经理的团队,列出其关联的当前团队的所有球员及其年龄 以下是我的3个表及其属性 PLAYER PLAYERNUM Primary Key PLAYERNAME PlayerAge TEAM TEAMNUM Primary Key TEAMNAME TeamCity MgrNum AFFILIATION PLAYERNUM Primary Key/Foreign Key TEAMNUM Primary Key/Foreign Key AffilYrs AffilBatAvg AffilDa

对于有经理的团队,列出其关联的当前团队的所有球员及其年龄

以下是我的3个表及其属性

PLAYER
PLAYERNUM Primary Key
PLAYERNAME
PlayerAge

TEAM
TEAMNUM Primary Key
TEAMNAME
TeamCity
MgrNum

AFFILIATION
PLAYERNUM Primary Key/Foreign Key
TEAMNUM Primary Key/Foreign Key
AffilYrs
AffilBatAvg
AffilDateStart Foreign Key
AffilDateEnd
AffilCurrentTeam
以下是我的SQL:

    SELECT PLAYERNAME, PlayerAge
    FROM PLAYER INNER JOIN AFFILIATION
    ON PLAYER.PLAYERNUM = AFFILIATION.PLAYERNUM
    INNER JOIN TEAM
    ON AFFILIATION.TEAMNUM = TEAM.TEAMNUM
    WHERE MgrNum IS NOT NULL;
我在查询表达式中得到了error missing运算符

也许应该是这样

    [NotTested]
    SELECT PLAYERNAME, PlayerAge
        FROM (PLAYER INNER JOIN AFFILIATION
        ON PLAYER.PLAYERNUM = AFFILIATION.PLAYERNUM)
        INNER JOIN TEAM
        ON AFFILIATION.TEAMNUM = TEAM.TEAMNUM
        WHERE MgrNum IS NOT NULL;
        GROUP BY PLAYER.PLAYERNAME, PLAYER.PlayerAge

access中的多个联接应使用括号。

您使用的是哪种DBMS?您标记了mysql和sql server,但在问题中您提到了Access。我的错,您是对的,我使用的是MS Access。我看不出您的查询有任何错误。这就是您正在使用的SQL,还是更改了internet/example/sample的字段名?您是否可以在设计视图中打开此查询,或者在切换到GUI时抛出错误?在我尝试切换到设计视图时,它给了我错误。这正是我使用的SQL。我添加了括号,如下面提到的Rainman。但它现在从表中返回重复的值。我该如何消除重复项?这会运行,但会给我重复的值。我如何消除重复的?你确定你的桌子设计是正确的吗?他们之间似乎有着不可分割的关系。顺便说一下,您可以将PlayerName和PlayerAge分组。我更新了我的答案。你得到副本的唯一原因是如果一个玩家有多个从属关系。一名球员是否应该在多个球队或联盟中?(可以在选择后添加关键字
distinct
,但这似乎隐藏了一个潜在问题。)