ホームページ >データベース >mysql チュートリアル >MySQL の JOIN のデフォルトは LEFT JOIN ですか?

MySQL の JOIN のデフォルトは LEFT JOIN ですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-12 12:56:01947ブラウズ

Does MySQL's JOIN Default to LEFT JOIN?

MySQL JOIN と LEFT JOIN の違いを理解する

データベース クエリを構築するときは、JOIN と LEFT JOIN の基本的な違いを理解することが重要です。

提供されたクエリで、INNER JOIN を LEFT に置き換えるときに問題が発生しました。結合します。ここで疑問が生じます: 指定されたタイプのない JOIN はデフォルトで LEFT JOIN になると想定されていますか?

いいえ、そうではありません。

デフォルトでは、MySQL INNER JOIN を実行します。これには、両方のテーブルで一致する行のみが含まれます。対照的に、LEFT JOIN は、右側のテーブルに対応する一致がない場合でも、左側のテーブル (この場合は DM_Server.Jobs) のすべての行を保持します。

この違いについて、次のことを考えてみましょう:

  • INNER JOIN: ジョブとサーバーの両方に ServerID の値が一致する行を返します。
  • LEFT JOIN: サーバーに対応するエントリがない可能性のある行を含め、ジョブからすべての行を返します。

より包括的なビジュアルについては説明:

内部結合:

Jobs          Servers

| Jobs_ID | ServerID |
|---------|----------|
| 1        | 2        |
| 2        | 3        |

**Result:**
| Jobs_ID | ServerID | Description |
|---------|----------|------------|
| 1        | 2        | Description |
| 2        | 3        | Description |

左結合:

Jobs          Servers

| Jobs_ID | ServerID |
|---------|----------|
| 1        | 2        |
| 2        | 3        |
| 3        | NULL     |

**Result:**
| Jobs_ID | ServerID | Description |
|---------|----------|------------|
| 1        | 2        | Description |
| 2        | 3        | Description |
| 3        | NULL     | NULL        |

この区別を理解することで、意図した結合タイプに基づいてクエリで目的の行を確実に取得できます。

以上がMySQL の JOIN のデフォルトは LEFT JOIN ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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