建立外部聯結 (Visual Database Tools)
適用於:SQL Server
根據預設,查詢和檢視表設計工具 會建立數據表之間的內部聯結。 內部聯結會排除與其他數據表中數據列不符的數據列。 不過,外部聯結會傳回FROM子句中至少一個資料表或檢視表的所有資料列,只要這些資料列符合任何WHERE或HAVING搜尋條件。 如果您想要在結果集中包含沒有在連接表中找到匹配的數據列,您可以建立外部聯結。
當您建立外部聯結時,數據表出現在 SQL 語句中的順序(如 SQL 窗格中所反映)很重要。 您加入的第一個數據表會變成 「left」 資料表,而第二個數據表會變成 「right」 資料表。 (數據表出現在 [圖表] 窗格中的實際順序, 並不重要。當您指定左方或右方外部聯結時,會參考資料表加入查詢的順序,以及它們出現在 SQL 語句中 SQL 窗格中的順序,。
建立外部聯接
自動或手動建立聯結。 如需詳細資訊,請參閱 自動合併資料表(Visual Database Tools) 或 手動合併資料表(Visual Database Tools)。
選取 [圖形] 窗格中的聯結線,然後從 [查詢設計工具] 選單中,選擇 [從 <資料表>中選取所有資料列],然後選擇包含您想要加入額外數據列的資料表的命令。
選擇第一個數據表來建立左外部聯接。
選擇第二個數據表來建立右外部聯接。
選擇這兩個數據表來建立完整的外部聯結。
當您指定外部聯結時,查詢和檢視表設計工具會修改聯結行來表示外部聯結。
此外,查詢和檢視表設計工具會修改 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)