我有一些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