如何在MS访问中加入3个表

时间:2014-01-23 13:53:09

标签: sql ms-access

我有3张桌子

Item, Primary, Secondary

我希望它返回All columns项目和Brandname来自主要和Size, Color 来自中学

ItemID - pk(item) ItemID - fk(小学) ItemID - fk(中学)

我知道如何做2张桌子,但我遇到了如何做3张桌子的问题

这是我的代码

From Item, Primary, Secondary
Where Item.ItemID=Primary.ItemID AND Item.ItemID=Secondary.ItemID

有人可以指出我的错误

注意主要是蓝色这是来自访问的保留字吗?

4 个答案:

答案 0 :(得分:2)

由于primary是保留字,因此用括号[]

包围primary字样

[编辑解释评论] 使用@janet编写的查询,尝试在项目表之前添加一个打开的paren,在第二个内部联接之前添加一个关闭的paren。

SELECT a.*, b.Brandname, c.Size, c.Color
FROM (Item a
    INNER JOIN [Primary] b ON a.ItemID = b.ItemID)
    INNER JOIN [Secondary] c ON b.ItemID = c.ItemID

答案 1 :(得分:1)

试试这个:

From Item 
  JOIN [Primary] ON Item.ItemID=[Primary].ItemID
  JOIN [Secondary] ON Item.ItemID=[Secondary].ItemID

答案 2 :(得分:0)

您可以使用此查询

SELECT a.*, b.Brandname, c.Size, c.Color
FROM Item a
INNER JOIN Primary b ON a.ItemID = b.ItemID
INNER JOIN Secondary c ON b.ItemID = c.ItemID

a,b和c是查询中表的别名。 a。*将返回Items表中的所有列。

答案 3 :(得分:0)

你应该试试

SELECT Item.*, Primary.Brandname, Secondary.Size, Secondary.Color
FROM Item 
inner join Primary  ON a.primary_id = Primary.id
inner join Secondary  ON Primary.secondary_id = Secondary.id