「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > 内側の結合vs.アウター結合:違いは何ですか、いつそれぞれを使用すればよいですか?

内側の結合vs.アウター結合:違いは何ですか、いつそれぞれを使用すればよいですか?

2025-03-23に投稿されました
ブラウズ:759

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

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

の比較

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

内側の結合:交差

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

outer join:union

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

外側の結合タイプ

外側結合は3つのタイプに分割されます。

  • 左外結合:左のテーブルのすべての行と右のテーブルの一致する行を取得します。左のテーブルに一致しない右のテーブルの行には、ヌル値が含まれます。
  • 右外の結合:左外結合に似ていますが、右のテーブルのすべての行と左のテーブルの一致する行を取得します。
  • 完全な外側の結合: 2つのテーブルのすべての行を組み合わせて、行方不明の一致をnull値で埋めます。

実用的な例

顧客とその注文データを含む次の表を検討してください:

customer(id、name)

注文(id、customer_id、product)

内側の結合:

SELECT *
FROM customer
INNER JOIN orders ON customer.id = orders.customer_id;
このクエリは、注文した顧客のみを返します。

左外結合:

SELECT *
FROM customer
LEFT OUTER JOIN orders ON customer.id = orders.customer_id;
このクエリは、注文のない顧客を含むすべての顧客を返し、注文情報はnull値になります。

右外側結合:

SELECT *
FROM customer
RIGHT OUTER JOIN orders ON customer.id = orders.customer_id;
このクエリは、顧客テーブルに存在しない顧客が課した注文を含むすべての注文を返し、顧客情報はヌル値になります。

完全な外側の結合:

SELECT *
FROM customer
FULL OUTER JOIN orders ON customer.id = orders.customer_id;
このクエリは、すべての顧客とすべての注文を返し、null値で欠落している一致を記入します。

最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3