結合により、単独で使用することも、互いに組み合わせて使用することもできるテーブルが生成されます。 したがって、これらの結合とそれらの違いを理解して、特定の結合を決定し、特定のケースで右または左のどちらを選択する必要があるかを判断することをお勧めします。
主要な取り組み
- 左結合には、左テーブルのすべてのレコードと右テーブルの一致したレコードが含まれ、一致しない行には NULL 値が入力されます。
- 右側の結合には、右側のテーブルのすべてのレコードと、左側のテーブルの一致したレコードが含まれ、一致しない行には NULL 値が入力されます。
- 左結合と右結合は互いにミラーリングされたイメージであり、クエリ内のテーブルの順序に応じて入れ替えることができます。
左結合と右結合
左結合は、左側のテーブルのすべての行と、右側のテーブルの一致する行を返します。右側のテーブルに一致する行がない場合、結果には null 値が含まれます。 左結合と同じ右結合ですが、右テーブルのすべての行と、左テーブルの一致する行が返されます。
表の右側に一致はありませんが、 SQL LEFT は、左側のテーブルから受信したすべてのエントリを処理します。 これは、ON 句に含まれるテーブルの右側のエントリが 0 (ゼロ) の場合でも、結合によって、メイン テーブルのすべてのフィールド内に NULL を持つレコードが返されることを意味します。
一方、右側の結合では、左側のテーブルでも、SQL RIGHT が右側のテーブルからすべてのエントリを送受信します。
これは、右結合が、右テーブルからのすべてのデータと、テーブルから受け入れられた値を配信することを意味します。この操作に適合する結合述語が存在しない場合は NULL を返します。
比較表
比較のパラメータ | 左結合 | 右参加 |
---|---|---|
使用法 | 複数のテーブルを接続し、左側のテーブルのすべてのレコードと、右側の一致する行を提供します。 | 複数のテーブルを結合し、右側のテーブルからすべてのデータを配信し、左側のテーブルから最初に一致する行を配信します。 |
クエリの実行 | 左結合を含むクエリの実装中、テーブルのすべてのエントリが最初に受信され、次にスタックド ループを使用して右テーブルの列値の一致するデータが取得され、NULL 値が他の一致しないデータに置き換えられます。 | 右側の結合を含むクエリの実装中、右側のテーブルのすべてのデータが最初に取得され、その後、スタック ループを使用して左側のテーブルの列値の一致したレコードが収集されます。 |
結果セット | 右側のテーブルに一致するデータが見つからない場合、結果セットの値は NULL またはゼロになります。 | 左側のテーブルに一致するデータが見つからない場合、結果セットの値は NULL またはゼロになります。 |
同義語 | 左外部結合 | 右外部結合 |
構文 | 列名を選択 FROM テーブル 1 左結合 table2 ON テーブル 1.列名 = テーブル 2.列名; | SELECT column_name(s) FROM table1 正しい参加 table2 ON テーブル1.列名 = テーブル2.列名; |
左結合とは
一致する値を含む列に応じて XNUMX つのデータベースのデータをマージするには、SQL で JOIN を使用します。 たとえば、クライアント データ (クライアント ID、最初に 姓、識別子など) と、特定の時間の注文データ (トランザクション ID、時間、クライアント ID、製品 ID など) を含む別のテーブル。
Left Join の構文を見て、その有用性を正しく理解しましょう。
列名を選択
FROM テーブル 1
左結合 table2
ON テーブル 1.列名 = テーブル 2.列名
- 'SELECT' – データセットで表示したいカテゴリを選択することから始めます。
- 'FROM' – すべての情報を維持したいテーブルのデータを入力します。
- 'LEFT JOIN' – 言及されている XNUMX 番目のテーブルのデータを入力します。
- 'ON' – この句を使用して、テーブルを接続するために使用するフィールドを指定します。
一致する検索結果が複数ある場合、左側のテーブルの列が複製され、右側のテーブルから直接すべてのデータが含まれます。 一致するものが見つからない場合は、左側のテーブルの行を保持し、右側のテーブルの関連する列に NULL を挿入します。
右結合とは
率直に言うと、右の結合操作は左の結合と非常に似ており、正反対です。
右結合は、基本的に、RIGHT JOIN 句で指定されたテーブルからすべての行を取得しますが、FROM 句で指定されたテーブルからは対応する行のみを取得するという点で、左結合と非常によく似ています。
RIGHT JOIN の内容は、LEFT JOIN で接続された XNUMX つのテーブルのラベルを交換するだけで取得できるため、RIGHT JOIN はあまり使用されません。
LEFT JOIN と RIGHT JOIN は、RIGHT OUTER JOIN だけでなく、LEFT OUTER JOIN としても表現できることに留意してください。
Right Join の構文については、以下で詳しく説明します。 右結合と左結合の操作は同じですが、順序が逆です。
列名を選択
FROM テーブル 1
右結合テーブル2
ON テーブル 1.列名 = テーブル 2.列名
左結合と右結合の主な違い
- 左の結合句は、右の結合句よりも一般的に使用されます。
- 左結合の式は、一致するすべてのレコード + 左のテーブルの一致しないレコードですが、右結合の式は、すべての一致するレコード + 右のテーブルの一致しないレコードです。
- https://www.tutorialspoint.com/sql/sql-left-joins.htm#:~:text=The%20SQL%20LEFT%20JOIN%20returns,matches%20in%20the%20right%20table.&text=This%20means%20that%20a%20left,of%20no%20matching%20join%20predicate.
- https://mode.com/sql-tutorial/sql-right-join/#:~:text=Right%20joins%20are%20similar%20to,names%20in%20a%20LEFT%20JOIN%20.
SQL RIGHT JOIN は、示唆されているほどめったに使用されるとは思えません。より複雑なクエリでニッチな用途があります。
あなたの言いたいことは理解できますが、実際には SQL RIGHT JOIN が選択されることはそれほど多くありません。
右結合と左結合の固有の違いが包括的に説明されているため、SQL 結合の理解が大幅に広がります。
確かに、この記事には信じられないほど詳細かつ詳細な分析が含まれています。
ここでの内容は具体的すぎるため、SQL に関する豊富な経験が不足している人にとっては特に役に立たないと思います。
確かに、ここでの内容は SQL をより深く理解している人に適しているかもしれません。
ここにある情報は興味深いものですが、記事の論調は少し独占的であるように見えることもあります。
それは確かに有効な観察です。
完全な比較表は、2 つのタイプの結合を区別するのに非常に役立ちます。この記事は本当に啓発的です。
確かに、この記事は非常に際立っています。
私はこれ以上同意できませんでした。
左結合と右結合の違いと、どのような状況でそれらを使用する必要があるかを理解することが非常に重要です。この記事はまさにそれを見事に達成しています。
絶対に!その緻密な精度は賞賛に値します。