外部結合は、開発者による分析のみに使用されますか? 無関係な、または選択基準に「一致」しない 2 つ以上のテーブルにデータを含めたい理由のユース ケースを見つけるのに苦労しています。
8 に答える
ユースケースの例は、すべての顧客とその購入を示すレポートを作成することです。つまり、何も購入していない顧客も表示します。顧客と購入の通常の結合を行うと、レポートには少なくとも 1 回購入した顧客のみが表示されます。
これは、 Jeff Atwoodによる非常に優れた例のリストです-SQL結合の視覚的説明彼は、SQL結合の新しい表現を視覚的に示しています。
OUTER JOINは、プライマリテーブルからレコードのセットを選択する場合に対処することを目的としています。プライマリテーブルには、セカンダリテーブルに関連するレコードが含まれる場合と含まれない場合があります。
INNER結合は、セカンダリテーブルにも表示されていないプライマリレコードをリストから除外します。OUTER JOINは、修飾されたすべてのプライマリレコードの可視性を保証します。
「一致しない」ケースは、オプションのデータに役立ちます。一部の行には存在するが、他の行には存在しないもの。
外部結合と内部結合の主な違いは、結合述語が一致するかどうかに関係なく、外部結合では結合された両方のテーブルの各レコードが保持されることです。したがって、ユースケースは、「不足しているもの」について知ることを中心に展開する必要があります。購入していないお客様、または個人情報を紛失した会員。
外部結合に関する優れた記事: 専門家に会う:外部結合での述語のコーディングに関するTerry Purcell:単純な外部結合構造の比較
ユーザーが住所を入力しないことを選択したり、いくつかの住所 (配送先、住所、郵便番号など) を持っている可能性があるため、おそらくユーザー テーブルとそれに関連する住所テーブルがあります。すべてのユーザーを一覧表示するだけでなく、アドレスを持つユーザーのアドレスも表示する場合は、アドレス テーブルに外部結合を使用する必要があります。
ユーザー用と資格など用の 2 つのテーブルがあるとします。すべてのユーザーが資格を持っている場合は、その資格を取得するクエリを実行したいとします。この場合、外部結合を使用して、すべてのユーザーと資格を持つユーザーを取得します。内部結合は、資格を持つユーザーのみを提供します。