我有一些MS Access 2010中link tables
链接回第一张表,就像这样:结SQL查询回到第一个表
Item LinkTable
[ ID ] [ ID ]
[ ItemName ]-1-------*-[ FromItem ]
[ ]-1-------*-[ ToItem ]
图1:FromItem
和ToItem
引用“ Item.ID”
我想作一个链接所有三个表,并一起显示例如follwo查询ing fields
(from)Item.ItemName | LinkTable.ID | (到)Item.ItemName
我曾尝试以下SQL语句,但抱怨项目的第二次出现时,在表达的消息“在FROM子句中‘’不能重复表名称”项目“项目LEFT JOIN LinkTable”下面:
SELECT *
FROM Item LEFT JOIN
(
Item LEFT JOIN LinkTable ON (LinkTable.ToItem =Item.ID)
)
ON (LinkTable.FromItem = Item.ID);
Q1:为什么我不能链接到“起跑表”像这样不会导致错误消息?
Q2:我应该如何定义Select域以显示from-ItemName和to-ItemName而不会混淆它们? (在这个例子中,我写 “SELECT *” 简化)
//罗尔夫
编辑:______________________________________________________
基于由@Andomar(下)我结束了以下工作的回复码。我为了用INNER JOIN
代替LEFT JOIN
只得到匹配Items
:
SELECT fro.ItemName
, lt.ID
, to.ItemName
FROM Item fro
INNER JOIN (LinkTable lt
INNER JOIN Item to ON lt.toItem = to.ID)
ON fro.ID = lt.fromItem;
工程就像一个魅力,谢谢! – RIL