ホームページ > データベース > mysql チュートリアル > INNER JOIN と OUTER JOIN: 違いは何ですか? それぞれをいつ使用する必要がありますか?

INNER JOIN と OUTER JOIN: 違いは何ですか? それぞれをいつ使用する必要がありますか?

Susan Sarandon
リリース: 2025-01-25 17:37:08
オリジナル
592 人が閲覧しました

INNER JOIN vs. OUTER JOIN: What's the Difference and When Should I Use Each?

データベース接続:内側の結合と外側結合の比較

データベース操作では、接続操作が複数のテーブルからのデータを結合する鍵です。内側の結合と外側の結合は、2つの基本接続タイプです。この記事では、主要な違いと実用的なアプリケーションを調べます。

内側の結合:交差

内側結合異なるテーブルの2つ以上の列に一致する値を持つ行を選択します。概念的には、ベン図のオーバーラップで表される2つのセットの交差点を取得します。両方のテーブルに存在する行のみが出力に含まれています。

外側の結合:ユニオン

内側結合とは異なり、外側の結合には、他のテーブルに一致するかどうかに関係なく、指定されたテーブルからのすべての行が含まれます。この操作は、ベン図の組み合わせエリアで表される組合を効果的に作成します。

外側の結合のタイプ

外側の結合は、

の3つのタイプに分割されます
  • 左外の結合:左のテーブルからすべての行と、右のテーブルから一致する行を取得します。左側のテーブルに一致しない右側のテーブルの行には、ヌル値が含まれます。
  • 右外側結合:左外結合に似ていますが、右のテーブルからすべての行を取得し、左のテーブルから一致する行を取得します。
  • 完全な外側の結合:2つのテーブルのすべての行を組み合わせて、欠落している一致をnull値で埋めます。

実用的な例

顧客に関するデータとその注文に関するデータを含む次の表を検討してください。

customer(id、name)

注文(id、customer_id、product)

内部結合:

<code class="language-sql">SELECT *
FROM customer
INNER JOIN orders ON customer.id = orders.customer_id;</code>
ログイン後にコピー
このクエリは、注文した顧客のみを返します。

左外結合:

<code class="language-sql">SELECT *
FROM customer
LEFT OUTER JOIN orders ON customer.id = orders.customer_id;</code>
ログイン後にコピー
このクエリは、注文のない顧客を含むすべての顧客を返し、注文情報はnull値になります。

右外側の結合:

このクエリは、顧客テーブルに存在しない顧客が行った注文を含むすべての注文を返し、顧客情報はnull値になります。
<code class="language-sql">SELECT *
FROM customer
RIGHT OUTER JOIN orders ON customer.id = orders.customer_id;</code>
ログイン後にコピー

完全な外側の結合:

このクエリは、すべての顧客とすべての注文を返し、null値で欠落している一致を記入します。
<code class="language-sql">SELECT *
FROM customer
FULL OUTER JOIN orders ON customer.id = orders.customer_id;</code>
ログイン後にコピー

以上がINNER JOIN と OUTER JOIN: 違いは何ですか? それぞれをいつ使用する必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート