MySQLには、主にLEFT JOINとRIGHT JOINという2種類の結合があります。 これらの結合の主な違いは、マッチしない行を含めるかどうかです。 LEFT JOINは左側からすべてのレコードと右側のテーブルからマッチした行を含み、RIGHT JOINは右側からすべての行と左側のテーブルからマッチしていない行を返します。 このセクションでは、LEFTとRIGHT JOINの一般的な違いについて説明します。 比較を調べる前に、まず MySQL の JOIN、LEFT JOIN、および RIGHT JOIN 句を理解しましょう。
JOIN 句とは?
結合は複数のテーブルからデータを照会するために使用し、条件を通じて 2 つ以上のテーブルから結合した結果を返します。
LEFT JOIN句とは?
左結合句は2つ以上のテーブルを結合し、左のテーブルからすべての行と右のテーブルから一致したレコードを返すか、一致するレコードが見つからない場合はNULLを返します。 これは左外部結合としても知られています。
Left Join vs Right Join
LEFT Joinの詳細については、ここをクリックしてください。
右結合句とは何ですか。
右結合句は2つ以上のテーブルを結合し、右側のテーブルからすべての行を返し、他のテーブルからは指定した結合条件を満たした結果のみを返します。 左側のテーブルから一致しないレコードが見つかると、Null値を返します。 これは右外部結合としても知られています。
右結合の詳細については、こちらを参照してください。
Syntax of LEFT JOIN Clause
LEFT OUTER JOINの一般的な構文は次のとおりです。
Syntax of RIGHT JOIN Clause
以下は、RIGHT JOIN:
以下はRIGHT OUTER JOIN:
LEFT JOIN vs. RIGHT JOINの一般的なシンタクスである。 RIGHT JOIN
次の比較表で、その主な違いを簡単に説明します。
LEFT JOIN | |
---|---|
これは2つ以上の表を結合して、左側の表からすべてのレコード、右側の表からマッチング行を返します。 | 2つ以上のテーブルを結合し、右側のテーブルからすべてのレコードを返し、左側のテーブルから一致する行を返すために使用されます。 |
右側のテーブルに一致する行がない場合、結果セットにはnull値が含まれます。 | 左側のテーブルに一致する行がない場合、結果セットにはnull値が含まれます。 |
これはLEFT OUTER JOINとしても知られています。 | RIGHT OUTER JOINとしても知られています。 |
例
例を通して両方の結合の違いを理解しておきましょう。 例えば、”customer “と “orders “という名前のテーブルがあり、次のデータが含まれているとします。
Table: orders
LEFT JOIN Example
以下のSQL文ではLEFT JOINクエリを用いて両方のテーブルからマッチングレコードを返しています。
クエリが正常に実行されると、次のような出力が得られます。
RIGHT JOIN の例
次の SQL 文では、RIGHT JOIN クエリを使用して両方のテーブルから一致するレコードを返します。
クエリが正常に実行されると、次のような出力が得られます: