ホームページ >データベース >mysql チュートリアル >MySQL のデフォルトは INNER JOIN またはカンマ構文ですか?

MySQL のデフォルトは INNER JOIN またはカンマ構文ですか?

DDD
DDDオリジナル
2024-10-26 19:17:30545ブラウズ

Does MySQL Default to INNER JOIN or Comma Syntax?

MySQL のデフォルトの結合動作: 謎を解明する

MySQL の領域では、明示的な JOIN 句が存在しないため、根本的な疑問が生じます。デフォルトの動作は何ですか?これは INNER JOIN に似ていますか、それとも古いカンマ区切り構文をエミュレートしますか?

デフォルト: INNER JOIN

一般的な考えに反して、 MySQL の JOIN 句は、実質的に INNER JOIN を使用するのと同じです。つまり、INNERの指定は冗長になります。 MySQL はこのようなステートメントを INNER JOIN として解釈し、簡潔にするために省略できるようにします。

JOIN バリエーションの比較

さらに明確にするために、次のシナリオを検討してください。

  • SELECT * FROM t1 JOIN t2 は、SELECT * FROM t1 INNER JOIN t2.
  • SELECT * FROM t1, t2 は、SELECT * FROM t1 INNER JOIN t2.

WHERE Clauses and Joins

と同様のカンマ区切り構文をエミュレートします。 2 番目の質問に関しては、WHERE 句は JOIN と微妙な関係があります。これらは類似点を共有していますが、異なる目的を果たします。

WHERE 句は、参加しているテーブルから取得したデータをフィルタリングします。対照的に、JOIN はこれらのテーブル間の関係を定義し、結果セットにどの行が含まれるかを決定します。

カンマ構文と JOIN 構文

使用の効果は次のとおりです。カンマとキーワード (JOIN または INNER JOIN) は同一ですが、その歴史と意味は異なります。 ANSI-89 標準から継承したカンマ構文にはいくつかの欠点があり、それが ANSI-92 標準での JOIN キーワードの導入を促しました。

JOIN 構文を使用する利点

明確さと保守性を確保するために、カンマではなく JOIN 構文を一貫して使用することを強くお勧めします。これには、次のような利点があります。

    テーブルのリレーションシップとフィルターを分離することで可読性が向上します。
  • これらの要素を区別しておくことで保守性が向上します。
  • OUTER JOIN へのシームレスな変換。
  • 優先順位ルールによるあいまいなエラーの回避。
  • 結合句を省略することにより、デカルト積が作成される可能性が減少します。

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

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