簡體   English   中英

SQL中外連接的目的(或用例)是什么?

[英]What is the purpose (or use case) for an outer join in SQL?

外連接僅用於開發人員的分析嗎? 我無法找到一個用例,說明為什么要將數據包含在兩個或多個不相關或不匹配選擇條件的表中。

一個示例用例是生成一個顯示所有客戶及其購買的報告。 也就是說,甚至顯示沒有購買任何東西的顧客。 如果您進行普通的客戶加入和購買,報告將僅顯示至少購買一次的客戶。

以下是Jeff Atwood的一個非常好的示例列表- SQL連接的可視化解釋他可視化地顯示SQL連接的新表示。

“不匹配”情況對可選數據很有用。 某些行存在的某些行,但不適用於其他行。

OUTER JOIN旨在解決您希望從主表中選擇一組記錄的情況,這些記錄可能包含也可能沒有包含在輔助表中的相關記錄。

INNER連接將從列表中省略任何未在輔助表中表示的主記錄。 任何OUTER JOIN都保證所有合格主記錄的可見性。

也許您有一個用戶表和一個與之相關的地址表,因為您的用戶可能選擇不輸入地址,或者他們可能有幾個(運輸,街道,郵政等)。 如果要列出所有用戶,還要顯示擁有這些用戶的用戶,則必須使用外部聯接作為地址表。

假設您有一個用於用戶的表和一個用於資格的表,您希望進行查詢以獲得具有其資格的所有用戶(如果有的話)。 在這種情況下,您將使用外部聯接來獲取所有用戶和具有資格的用戶。 內部聯接只會為您提供具有資格的用戶。

外連接和內連接之間的區別主要在於外連接保留連接表中的每個記錄,無論連接謂詞是否匹配。 因此,用例需要圍繞知道“缺失的東西”,例如。 未購買的客戶或缺少個人詳細信息的會員。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM