共用方式為


建立外部聯結 (Visual Database Tools)

適用於:SQL Server

根據預設,查詢和檢視表設計工具 會建立數據表之間的內部聯結。 內部聯結會排除與其他數據表中數據列不符的數據列。 不過,外部聯結會傳回FROM子句中至少一個資料表或檢視表的所有資料列,只要這些資料列符合任何WHERE或HAVING搜尋條件。 如果您想要在結果集中包含沒有在連接表中找到匹配的數據列,您可以建立外部聯結。

當您建立外部聯結時,數據表出現在 SQL 語句中的順序(如 SQL 窗格中所反映)很重要。 您加入的第一個數據表會變成 「left」 資料表,而第二個數據表會變成 「right」 資料表。 (數據表出現在 [圖表] 窗格中的實際順序, 並不重要。當您指定左方或右方外部聯結時,會參考資料表加入查詢的順序,以及它們出現在 SQL 語句中 SQL 窗格中的順序,

建立外部聯接

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

  2. 選取 [圖形] 窗格中的聯結線,然後從 [查詢設計工具] 選單中,選擇 [從 <資料表>中選取所有資料列],然後選擇包含您想要加入額外數據列的資料表的命令。

    • 選擇第一個數據表來建立左外部聯接。

    • 選擇第二個數據表來建立右外部聯接。

    • 選擇這兩個數據表來建立完整的外部聯結。

當您指定外部聯結時,查詢和檢視表設計工具會修改聯結行來表示外部聯結。

此外,查詢和檢視表設計工具會修改 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)