内部結合と外部結合の違いは何ですか? これら 2 種類の結合の正確な意味は何ですか?
7 に答える
ウィキペディアには、このトピックに関するすばらしい長い記事があります [こちら]( http://en.wikipedia.org/wiki/Join_(SQL))
しかし基本的に:
- 内部結合は、すべてのテーブルの where 句を満たす行がある結果を返します
- 外部結合は、少なくとも 1 つのテーブルに where 句を満たす行がある場合に結果を返します。
INNER JOIN を使用して、一致する両方のテーブルからすべての行を返します。すなわち。結果のテーブルでは、すべての行と列に値が含まれます。
OUTER JOIN では、結果のテーブルに空の列が含まれる場合があります。外部結合は LEFT または RIGHT のいずれかです
LEFT OUTER JOIN は、2 番目のテーブルに一致するものがなくても、最初のテーブルからすべての行を返します。
RIGHT OUTER JOIN は、最初のテーブルに一致するものがなくても、2 番目のテーブルからすべての行を返します。
数学セットを使用して、
Inner Join is A ^ B;
Outer Join is A - B.
つまり、(+)はクエリのA側です。
INNER JOIN
両方のテーブルに存在する行を返します
OUTER JOIN
いずれかのテーブルに存在するすべての行を返します
内部結合は、レコードが両方のテーブルに表示される場合にのみ、結合された行を返します。方向に応じた外部結合では、1 つのテーブルのすべてのレコードが表示され、対応する行が存在する結合テーブルのデータに結合されます。
顧客と注文を含むスキーマの例を想定します。
INNER JOIN:注文のある顧客のみを取得します。
LEFT OUTER JOIN:注文の有無にかかわらず、すべての顧客を取得します。
RIGHT OUTER JOIN:一致する顧客レコードの有無にかかわらず、すべての注文を取得します。
もう少し詳細な情報については、内部および外部結合 SQL ステートメントを参照してください。