MS-ACCESS 3表连接

时间:2015-08-13 17:10:10

标签: sql ms-access-2010

我在使用join语句从3个表中获取数据时遇到问题。 我将不胜感激任何帮助。

感谢。

我有3张桌子:

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

我希望能够从表“Appeals”获得所有上诉,这些上诉具有与类别名称“CategoryA”相关的CategoryID(来自表“AppealsCategories”)。对于每个申诉,要获取表格“上诉”中的所有字段以及与SubmittedByUserID相关的名字和姓氏(来自“用户”表)。

我写了这个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

请帮忙!!!谢谢!

2 个答案:

答案 0 :(得分:1)

保罗也指出,你的查询中有一个拼写错误。此外,您需要将连接包装成括号,可爱的括号:

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';

答案 1 :(得分:1)

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

nanf

字符串分隔符也是双引号而不是单引号。