logo

左結合と右結合の違い

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';>

クエリが正常に実行されると、次のような出力が得られます。

左結合と右結合