MS-ACCESS 3 table 加入

MS-ACCESS 3 table join

我在使用连接语句从 3 table 中获取数据时遇到问题。 如果有任何帮助,我将不胜感激。

谢谢。

我有 3 个 table:

Table "Users"
=============
UserID      FirstName   LastName
-----------------------------------------
1       Mick        Mickley
2       Tomy        Hanks
3       Roger       Waters


Table "Appeals"
===============
AppealID    Title       CategoryID  SubmittedByUserID
-----------------------------------------------------------------
1       Title1          2           1
2       Title2          2           1
3       Title3          3           2


And Table "AppealsCategories"
=============================
CatID       CatName     CatDescription
-----------------------------------------
1       CategoryA   CatDescription1
2       CategoryB   CatDescription2
3       CategoryC   CatDescription3

我希望能够从 table "Appeals" 获得所有具有与类别名称 "CategoryA" 相关的类别 ID 的申诉(来自 table "AppealsCategories").对于每个申诉,获取 table "Appeals" 中与 SubmittedByUserID 相关的所有字段以及名字和姓氏(来自 table "Users")。

我写了这个 SQL 语句,但它不起作用:

SELECT Appeals.*, Users.Firstname, Users.LastName
FROM Users
JOIN Appeals ON Appeals.SubmittedByUserID=Users.UserID
JOIN AppealsCategories ON Appeals.CategoryID=AppealsCategories.CatID
WHERE AppealCategories.CatName='CategoryA';

对我做错了什么有帮助吗??我正在使用 MS ACCESS

求助!!!谢谢!!

就像 Paul 也指出的那样,您的查询中有错字。另外,括号,可爱的括号,你需要将你的连接包裹到:

SELECT Appeals.*, Users.Firstname, Users.LastName
FROM ((Users
        JOIN Appeals ON Appeals.SubmittedByUserID=Users.UserID)
        JOIN AppealsCategories ON Appeals.CategoryID=AppealsCategories.CatID)
WHERE AppealsCategories.CatName='CategoryA';

MS Access 具有非常具体的联接语法,包括特定的关键字和括号。试试这个:

SELECT Appeals.*, Users.Firstname, Users.LastName
FROM (Users INNER JOIN
      Appeals
      ON Appeals.SubmittedByUserID = Users.UserID
     ) INNER JOIN
     AppealsCategories
     ON Appeals.CategoryID = AppealsCategories.CatID
WHERE AppealsCategories.CatName = "CategoryA";

此外,字符串分隔符是双引号而不是单引号。