試試看!
有時,在您的查詢中,您會想要查看來自一個資料表的所有記錄,連同來自另一個資料表的相符記錄。 若要這麼做,請建立外部聯結。
「內部聯結」只有在兩個連接的資料來源中都有相符的識別碼時,才會顯示資料。 例如,如果您想要顯示產品和銷售的數量,就需在 [產品] 與 [訂單詳細資料] 資料表之間建立內部聯結。 當您執行查詢時,系統只會傳回出現在訂單中並因此在兩個資料表中都有出現的產品。
相對地,「外部聯結」則會傳回來自一個資料來源的「全部」資料,以及來自另一個資料表或資料來源的「部分」資料。
例如,如果您想要查看哪些產品尚未售出,就需建立一個查詢以顯示來自 [產品] 資料表的 [產品識別碼],以及來自 [訂單詳細資料] 資料表的任何相符 [訂單識別碼]。 產品如果在 [訂單詳細資料] 資料表中沒有相符的記錄,就會傳回產品名稱且其 [訂單識別碼] 欄位中沒有值。
左方外部聯結和右方外部聯結
在外部連結中,顯示其所有記錄的資料表稱為「基礎資料表」。 只顯示部分 (相符) 記錄的資料表稱為「次要資料表」。
[連接屬性] 對話方塊說明您在不同類型的聯結會看到的內容:
假設您已建立查詢來顯示客戶已購買的產品。 您的輸出欄位為 [產品名稱]、[訂單識別碼] 及 [數量]。
-
內部聯結。 只包含其中兩個資料表的聯結欄位相等的列 (記錄),例如,只包含有相關訂單的產品。
-
左方外部聯結。 包含 [左資料表名稱] 底下資料表的「全部」記錄,但只包含 [右資料表名稱] 底下資料表中聯結欄位相等的記錄,例如所有訂單,但僅限那些有相關產品之訂單的數量和 [產品識別碼]。
-
<c0>右方外部聯結</c0>。 包含 [右資料表名稱] 底下資料表的「全部」記錄,但只包含 [左資料表名稱] 底下資料表中聯結欄位相等的記錄,例如所有產品,即使它們沒有訂單,在此情況下 [訂單識別碼] 和 [數量] 欄位中會出現空白值。
您可以從這些範例得知,了解哪個資料表在左方、哪個資料表在右方相當重要,這可能實際上與查詢視窗中資料表的排列方式不同。 若要了解您將會從查詢獲得哪些資料,請仔細閱讀 [連接屬性] 對話方塊中的文字。
1.新增資料來源
-
選取 [建立] > [查詢設計]。
將您需要的所有資料表和查詢新增為數據源。 (不用擔心。 如果您忘記,日後仍有機會新增更多數據源。)
如果 Access 偵測到或推算出資料來源,可能就會顯示它們的關聯。
2.新增聯結
-
如果您沒有看到來源之間有關聯,請新增聯結。 請從一個資料來源中,將您想要的欄位拖曳到另一個資料來源中的對應欄位。 您從中進行拖曳的資料表是將在 [連接屬性] 對話方塊中顯示在左方的資料表。 Access 預設會建立內部聯結。 如果您需要的是外部聯結,請變更其類型。
3.變更聯結
-
按兩下代表您想要變更之聯結的線條。
-
在 [連接屬性] 對話方塊中,若要建立外部聯結,請選取第二個或第三個選項。 然後,選取 [確定]。
請務必注意哪個資料表是基礎資料表,亦即系統會顯示其所有記錄的資料表。
4.完成查詢。
依照一般的查詢建立步驟:新增輸出欄位、新增任何準則,然後執行或儲存查詢。 若要了解做法,請參閱建立基本查詢。