建立外部聯結 (Visual Database Tools)

適用於:SQL Server

在預設狀況下,查詢和檢視表設計工具會在資料表之間建立內部聯結 (Inner Join)。 內部聯結將刪除不符合其他資料表之資料列的資料列。 然而,外部聯結則至少傳回 FROM 子句提到的一個資料表或檢視,只要這些資料列符合任何 WHERE 或 HAVING 搜尋條件。 若要在不具有符合聯結資料表中資料的結果集中包含資料列,就可以建立外部聯結。

在建立外部聯結時,資料表在 SQL 陳述式中出現的順序 (如 SQL 窗格所反映) 非常重要。 您加入的第一個資料表會成為「左」資料表,第二個資料表會成為「右」資料表 (資料表出現在 圖表窗格 的實際順序並不重要)。在指定左或右外部聯結時,是指這些資料表加入查詢時的順序,以及它們出現在 SQL 窗格的 SQL 陳述式中的順序。

若要建立外部聯結

  1. 自動或手動建立聯結。 如需詳細資訊,請參閱自動聯結資料表 (Visual Database Tools)手動聯結資料表 (Visual Database Tools)

  2. 選取 [圖表] 窗格中的聯結線 (Join Line),然後從 [查詢設計工具] 功能表選擇 [選取 <資料表名稱> 中所有的資料列],選取包含要併入其額外資料列之資料表的命令。

    • 選擇第一個資料表以建立左外部聯結。

    • 選擇第二個資料表以建立右外部聯結。

    • 選擇兩個資料表以建立完整外部聯結 (Full Outer Join)。

在指定外部聯結時,查詢和檢視設計師會修改聯結線以指出外部聯結。

此外,查詢和檢視設計師會修改 [SQL] 窗格中的 SQL 陳述式,以反映聯結類型的變更,如下列陳述式所示:

SELECT employee.job_id, employee.emp_id,  
   employee.fname, employee.minit, jobs.job_desc  
FROM employee LEFT OUTER JOIN jobs ON   
    employee.job_id = jobs.job_id  

因為外部聯結包含不符的資料列,因此可以用它來尋找違反外部索引鍵條件約束的資料列。 若要如此,可以建立外部聯結,然後加入搜尋條件,以尋找最右方的資料表中主索引鍵資料行為 null 的資料列。 例如,下列外部聯結會找出 employee 資料表中在 jobs 資料表沒有對應資料列的資料列:

SELECT employee.emp_id, employee.job_id  
FROM employee LEFT OUTER JOIN jobs   
   ON employee.job_id = jobs.job_id  
WHERE (jobs.job_id IS NULL)  

另請參閱

使用聯結進行查詢 (Visual Database Tools)
聯結對話方塊 (Visual Database Tools)