ホームページ >データベース >mysql チュートリアル >さまざまな SQL 結合タイプとは何ですか?また、それらはどのように機能しますか?

さまざまな SQL 結合タイプとは何ですか?また、それらはどのように機能しますか?

Barbara Streisand
Barbara Streisandオリジナル
2025-01-09 17:01:45869ブラウズ

What are the Different SQL Join Types and How Do They Work?

SQL 結合タイプ: 内部結合、外部結合、左結合、右結合についての深い理解

SQL 結合は、共通の列 (複数の列) に基づいて複数のテーブルのデータを結合するために使用されます。結合には、内部結合、外部結合、左結合、右結合の 4 つの主なタイプがあります。各タイプには、独自の特性とパフォーマンスに関する考慮事項があります。

内部結合

内部結合は、両方のテーブルで値が一致する行のみを返します。これは、結合条件が true である行のみを含むため、最も制限の厳しい結合タイプです。これは、別のテーブルに一致するデータがない行を除外することを意味します。

例:

<code class="language-sql">SELECT *
FROM table1
INNER JOIN table2
ON table1.id = table2.id;</code>

参加を解除

左結合は、右側のテーブルに一致する行があるかどうかに関係なく、左側のテーブル内のすべての行を返します。これには、左側のテーブルのすべての行と、右側のテーブルの一致する行が含まれます。左側のテーブルに一致する行がない右側のテーブルの行には、NULL 値が返されます。

例:

<code class="language-sql">SELECT *
FROM table1
LEFT JOIN table2
ON table1.id = table2.id;</code>

右結合

右結合は左結合と似ていますが、左のテーブルに一致する行があるかどうかに関係なく、右のテーブルのすべての行を返します。これには、右側のテーブルのすべての行と、左側のテーブルの一致する行が含まれます。左側のテーブルの行のうち、右側のテーブルに一致する行がない場合は、NULL 値が返されます。

例:

<code class="language-sql">SELECT *
FROM table1
RIGHT JOIN table2
ON table1.id = table2.id;</code>

外部結合

外部結合は、左結合と右結合の組み合わせです。一致する行がもう一方のテーブルに存在するかどうかに関係なく、両方のテーブルからすべての行を返します。どちらかのテーブルの行で、もう一方のテーブルに一致する行が見つからない場合は、NULL 値が返されます。

例:

<code class="language-sql">SELECT *
FROM table1
FULL OUTER JOIN table2
ON table1.id = table2.id;</code>

パフォーマンスノート

結合操作のパフォーマンスは、テーブル内の行数、結合条件、使用される結合の種類によって異なります。内部結合は、一致する値を持たない行を除外するため、外部結合よりも高速になる傾向があります。テーブルのサイズと結合条件に応じて、左結合と右結合のパフォーマンスは同様になる場合があります。

一般に、必要なデータが返される限り、最も制限の厳しい結合タイプを使用することをお勧めします。これにより、パフォーマンスが最適化され、返される不要な行の数が削減されます。

以上がさまざまな SQL 結合タイプとは何ですか?また、それらはどのように機能しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。