MySQL には主に LEFT JOIN と RIGHT JOIN という 2 種類の結合があります。これらの結合の主な違いは次のとおりです。 一致しない行の包含 。 LEFT JOIN には左側のすべてのレコードと右側のテーブルの一致した行が含まれますが、RIGHT JOIN は右側のすべての行と左側のテーブルの不一致行を返します。このセクションでは、LEFT 結合と RIGHT 結合の一般的な違いについて説明します。比較を検討する前に、まず JOIN、LEFT JOIN、および RIGHT JOIN 句を理解しましょう。 MySQL 。
JOIN句とは何ですか?
あ 参加する は、複数のテーブルのデータをクエリするために使用され、条件を通じて 2 つ以上のテーブルから結合された結果を返します。 join 句の条件は、指定されたテーブル間で列がどのように一致するかを示します。
LEFT JOIN 句とは何ですか?
Left Join 句は 2 つ以上のテーブルを結合し、左側のテーブルからすべての行と右側のテーブルから一致したレコードを返します。一致するレコードが見つからない場合は null を返します。としても知られています 左外部結合 。したがって、Outer は、Left Join で使用するオプションのキーワードです。
次の視覚的表現でそれを理解できます。
LEFT 結合の詳細については、以下を参照してください。 ここをクリック 。
RIGHT JOIN 句とは何ですか?
Right Join 句は 2 つ以上のテーブルを結合し、右側のテーブルからすべての行を返し、指定された結合条件を満たす他のテーブルからの結果のみを返します。左側のテーブルに一致しないレコードが見つかった場合は、Null 値を返します。としても知られています 右外部結合 。したがって、Outer は、Right Join で使用するオプションの句です。
次のように理解できます 視覚的表現 。
RIGHT JOIN の詳細については、ここをクリックしてください。
LEFT JOIN 句の構文
LEFT JOIN の一般的な構文は次のとおりです。
SELECT column_list FROM table_name1 LEFT JOIN table_name2 ON column_name1 = column_name2 WHERE join_condition
LEFT OUTER JOIN の一般的な構文は次のとおりです。
SELECT column_list FROM table_name1 LEFT OUTER JOIN table_name2 ON column_name1 = column_name2 WHERE join_condition
RIGHT JOIN 句の構文
RIGHT JOIN の一般的な構文は次のとおりです。
SELECT column_list FROM table_name1 RIGHT JOIN table_name2 ON column_name1 = column_name2 WHERE join_condition
RIGHT OUTER JOIN の一般的な構文は次のとおりです。
SELECT column_list FROM table_name1 RIGHT OUTER JOIN table_name2 ON column_name1 = column_name2 WHERE join_condition
左結合と右結合
次の比較表は、それらの主な違いを簡単に説明したものです。
左結合 | 右結合 |
---|---|
2 つ以上のテーブルを結合し、左側のテーブルからすべてのレコードを返し、右側のテーブルから一致する行を返します。 | これは 2 つ以上のテーブルを結合するために使用され、右側のテーブルからすべてのレコードを返し、左側のテーブルから一致する行を返します。 |
右側のテーブルに一致する行がない場合、結果セットには null 値が含まれます。 | 左側のテーブルに一致する行がない場合、結果セットには null 値が含まれます。 |
これは、LEFT OUTER JOIN とも呼ばれます。 | 右外部結合とも呼ばれます。 |
例
例を通して両方の結合の違いを理解しましょう。 「」という名前のテーブルがあるとします。 お客様 ' そして ' 注文 ' これには次のデータが含まれます。
表: 顧客
表: 注文
LEFT JOIN の例
次の SQL ステートメントは、LEFT JOIN クエリを使用して両方のテーブルから一致するレコードを返します。
SELECT cust_id, cust_name, order_num, order_date FROM customer LEFT JOIN orders ON customer.cust_id = orders.order_id WHERE order_date <'2020-04-30'; < pre> <p>After successful execution of the query, we will get the output as follows:</p> <img src="//techcodeview.com/img/mysql-tutorial/37/difference-between-left-join-5.webp" alt="Left Join vs Right Join"> <p> <strong>RIGHT JOIN Example</strong> </p> <p>Following SQL statement returns the matching records from both tables using the RIGHT JOIN query:</p> <pre> SELECT cust_id, cust_name, occupation, order_num, order_date FROM customer RIGHT JOIN orders ON cust_id = order_id ORDER BY order_date; </pre> <p>After successful execution of the query, we will get the output as follows:</p> <img src="//techcodeview.com/img/mysql-tutorial/37/difference-between-left-join-6.webp" alt="Left Join vs Right Join"> <hr></'2020-04-30';>
クエリが正常に実行されると、次のような出力が得られます。
'2020-04-30';>