影片:
影片內容
當 Access 判斷您的查詢可以根據先完成的聯結提供不同的結果時,就會出現「不明確的外部聯接」訊息。 若要執行查詢,您必須進行一些變更。 最好的解決方案通常是將查詢分割成一部分。 也就是說,請將它設定為在較小的「子」查詢中完成至少一個聯結,然後在「父項」查詢中聯結至其他數據表或查詢。 Access 接著會先在子查詢 (或查詢中執行聯結) ,然後最後執行父查詢中的聯結,消除不明確的關聯性。
視查詢中有多少個數據表而定,您可能需要建立數個子查詢,以避免外部聯接不明確。 這段影片示範簡單的三個數據表範例,其中兩個相等聯結的數據表會分隔成子查詢,然後在父查詢中完成第三個數據表的外部聯接。 以下是基本步驟,假設您已經很熟悉 建立簡單的選取查詢:
-
Create 包含您想要在影片 (加入之數據表的新子查詢,這些是) 的公司和 人員 數據表。
-
在子查詢中,按兩下您需要的輸出字段,以顯示查詢網格線。
重要: 請務必包含原始查詢中的聯結欄位。 在影片範例中,公司已使用 RegionID 欄位聯結至區域,因此我們在子查詢的查詢網格線中包含 RegionID。
-
儲存並關閉子查詢,然後在 [設計視圖] 中開啟原始查詢。 這將會成為上層查詢。
-
刪除您新增至子查詢的數據表,然後在 [設計] (新增子查詢 > 新增數據表 (在 Access 2013) > 查詢中顯示數據表,或直接將子查詢從 [導航窗格] 拖曳到父查詢) 。
-
在父查詢中,像之前一樣建立聯結,此時才建立至子查詢。
-
將子查詢的輸出欄位新增至查詢網格線。
-
儲存並執行父查詢。
不明確外部聯接的拇指規則
當您在查詢中有兩個或多個聯結時,就會發生不明確的外部聯接,其中一個則是指向等聯的外部連接,或是有兩個指向彼此的外部聯接,例如,這兩個連接設定不明確,必須分割成個別的查詢:
Table1 --> Table2 --- Table3
Table1 --> Table2 <-- Table3
指向相同方向或背離其他外部聯接或等聯接的外部連接是可以的:
Table1 --> Table2 --> Table3
Table1 < -- 表格2 --> 表3
Table1 <-- 表格2 --- Table3
如需建立查詢的詳細資訊,請參閱查詢簡介或 Create 簡單的選取查詢。