外部結合は開発者の分析にのみ使用されますか?関係のない2つ以上のテーブルにデータを含めるか、選択基準に「適合しない」ためにユースケースを見つけるのが難しいです。SQLの外部結合の目的(またはユースケース)は何ですか?
答えて
例として、すべての顧客とその購入を示すレポートを作成するケースがあります。つまり、何も購入していない顧客でも表示されます。顧客と購入の通常の参加を行う場合、レポートには少なくとも1回の購入がある顧客のみが表示されます。
2つの表に存在する列のすべての行を取得する場合は、外部結合を使用する方法が唯一の方法です。 –
私が説明したユースケースは、通常、左外部結合として実行され、左側のテーブル(顧客)からすべての行を取得し、右側(購入)から一致する行を取得します。 BOTH表のすべての行が結果に表示されるようにするには、完全外部結合を使用します。 –
「一致しません」という場合は、オプションのデータに便利です。いくつかの行には存在しますが、他の行には存在しません。
なぜdownvote?これは正確ではありませんか? –
ユーザーがアドレスを入力しないか、複数の住所(出荷、通行、郵便など)を持つ可能性があるため、おそらくユーザーテーブルとそのアドレステーブルがあります。すべてのユーザーをリストするだけでなく、それらのアドレスを表示する場合は、アドレステーブルの外部結合を使用する必要があります。
ユーザーには2つのテーブルがあり、資格などには1つのテーブルがあるとします。すべてのユーザーに資格がある場合はその資格を取得するクエリを実行するとします。この場合、外部結合を使用してすべてのユーザーを戻し、資格を持つユーザーを取得します。内部結合は、資格を持っているユーザーのみを提供します。
外部結合と内部結合の違いは、主に、結合述語が一致するかどうかに関わらず、外部結合が両方の結合表の各レコードを保持することです。だから、ユースケースは "欠けているもの"について知ることを中心に回る必要があります。購入していない顧客、または個人的な情報が不足しているメンバー。外側について
ここで彼は、視覚的に参加するSQLの新しい表現を示しJeff Atwood - A Visual Explanation of SQL Joinsほかならによって例の非常に良いリストです。
+1 @シャディ・アルモスリ画像は1000語分の価値があります。特にあなたがセットとSennoleのVennダイアグラムに注意を払わなかった場合:) – TheVillageIdiot
OUTER JOINは、セカンダリテーブルに格納されている関連レコードがある場合とない場合がある、プライマリテーブルからレコードセットを選択する場合に対応します。
INNER結合では、セカンダリ・テーブルにも表示されていないプライマリ・レコードはすべてリストから除外されます。 OUTER JOINは、すべての有資格の主要レコードの可視性を保証します。
- 1. SQL Server 2008の内部結合と外部結合の混合
- 2. SQL結合と左外部結合:なぜ結果は異なりますか?
- 3. SQL外部結合関数
- 4. OneToMany - 結合テーブルと外部キーの違いは何ですか?
- 5. 内部結合と外部結合SQL文の比較
- 6. SQL Serverの速度:左外部結合対内部結合
- 7. 左の外部結合のSQL where節
- 8. SQL Serverの外部結合の問題
- 9. フル外部結合 - 純粋な教育目的のために結合された列
- 10. 左外部結合は左結合と同じですか?
- 11. 左外部結合フェッチは
- 12. SQL Server:完全外部結合の順序は関係ありますか?
- 13. 完全な外部結合 - Linq to SQL
- 14. ユースケース。 Googleマップは外部の俳優ですか?
- 15. MySQLは外部キーのデータまたは結合を複製しますか?
- 16. 同じテーブルの複数の合計列のSQL外部結合
- 17. 外部結合の条件は?
- 18. djangoのクラスベースの一般的なビューのユースケースは何ですか
- 19. マージ関数SQL Clrのユースケースは何ですか?
- 20. Hiberate多対多の結合テーブルまたは外部キーなし
- 21. Djangoはフィルター付きの外部結合を残しました
- 22. 左の外部結合でSQLをlinqに変換する
- 23. symfony2のSqlクエリ例外 - 左外部結合
- 24. このpostgres sqlクエリのクロスタブの目的は何ですか?
- 25. SQLのIMPLICIT JOINの目的は何ですか?
- 26. アクセスの左外部結合?
- 27. テーブルの結合、外部キー
- 28. 3テーブルの外部結合
- 29. MySQLの右外部結合
- 30. 外部結合のIF/CASE
ほとんどのレスポンスはLEFT OUTER JOINについて話していますが、これは最も一般的なものです。 http://en.wikipedia.org/wiki/Join_(SQL)#Outer_joinsの代わりにwikiを読むようにしてください。 –