内部結合は、最も一般的に使用される接続操作です。数学用語で説明すると、この文は次のように書き直すことができます: 集合論の観点からは 2 つの集合の積が必要であり、デカルト積の観点からは、ON 条件を満たすデカルト積要素をフィルタリングする必要があります。
私の意見では、内部結合は等価結合に似ています。自然結合は内部結合の特殊な結合です。
自然結合とは何ですか?
ナチュラル結合 (Naturaljoin) は特別な等価結合であり、2 つのリレーションシップで比較されるコンポーネントが同じ属性グループである必要があり、結果には重複が含まれます。属性列が削除されます。
等結合とは何ですか?
等結合は、リレーショナル演算 - 結合演算の一般的な接続方法です。接続演算子が "= の場合、これは条件付き接続 (またはθ接続)、つまり、θ=0
解析例:
# の場合の特殊なケースです。 # #テーブル aaa テーブル bbb:##テーブル aaa とテーブル bbb# で等しい属性 C B D を持つデータをクエリします
等価結合クエリ:
SElect*from aaa,bbb WHERE aaa.C=bbb.C and aaa.D=bbb.D and aaa.E=bbb.E
結果:
自然結合クエリ:
-- 自然连接用关键字 natural join SELECT*from aaa natural join bbb;
結果:
上記 2 つの結果から、等結合は 2 つのテーブルの共通部分から等しい値を持つ特定のデータを選択すると結論付けることができます。自然結合とは、2 つのテーブルで同じ属性および等しい属性値を持つデータを取得し、これらの同じ属性列を削除することを指します。
内部結合の実装方法
SElect*from aaa,bbb WHERE aaa.C=bbb.C and aaa.D=bbb.D and aaa.E=bbb.E
2番目の結合: 内部結合
select*from aaa inner join bbb on aaa.C=bbb.C and aaa.D=bbb.D and aaa.E=bbb.E;
3番目の結合: join
select*from aaa join bbb on aaa.C=bbb.C and aaa.D=bbb.D and aaa.E=bbb.E;
4 番目: STRAIGHT_JOIN
select*from aaa STRAIGHT_JOIN bbb on aaa.C=bbb.C and aaa.D=bbb.D and aaa.E=bbb.E;
後の 3 つは同じ効果を持ち、3 番目は 2 番目の省略形として理解できます。 4 番目と 2 番目のタイプの主な違いは挿入方法です。4 番目のタイプのパフォーマンスはわずかに低くなります。
外部結合
LEFT JOIN は、テーブル A とテーブル B の共通部分を取得し、左側のテーブルの残りのデータも含めることを意味します。デカルト積の観点から、最初に ON 句の条件を満たすレコードを選択し、次に左側のテーブルに残りのレコードを追加する必要があります A
# #コード実装:
select*from aaa left join bbb on aaa.C=bbb.C and aaa.D=bbb.D and aaa.E=bbb.E;結果:
右結合
左結合とは何ですか? 同様に、RIGHT JOIN は、テーブル A とテーブル B の共通部分とテーブル B の残りのデータを取得することと同等です。適切な結合を説明するときは、デカルト積の観点から開始できます。つまり、ON 条件を満たすレコードを選択し、右側のテーブル内の選択されていないレコードをそれらのレコードに追加します。コード実装:
select*from aaa right join bbb on aaa.C=bbb.C and aaa.D=bbb.D and aaa.E=bbb.E;結果:
完全結合
完全外部結合を検索します。 2 つのテーブル A セット B の和集合。デカルト積の観点から見ると、デカルト積から ON 句の条件が true であるレコードを選択し、残りのレコードを左側のテーブルに追加し、最後に残りのレコードを右側のテーブルに追加します。さらに、MySQL は OUTER JOIN をサポートしていませんが、左結合と右結合の結果に対して UNION 操作を実装できます。コード実装:
select*from aaa left join bbb on aaa.C=bbb.C and aaa.D=bbb.D and aaa.E=bbb.E union select*from aaa right join bbb on aaa.C=bbb.C and aaa.D=bbb.D and aaa.E=bbb.E結果:
以上がMySQL接続クエリとは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。