SQL でテーブルを結合するには、テーブル名の間にカンマを使用するか、CROSS JOIN
演算子を使用することがよくあります。 一見互換性があるように見えますが、重要な違いが存在します。
カンマ区切り結合:
<code class="language-sql">SELECT * FROM tableA, tableB;</code>
クロス結合:
<code class="language-sql">SELECT * FROM tableA CROSS JOIN tableB;</code>
両方ともデカルト積を作成します。tableA
のすべての行は tableB
のすべての行とペアになります。
機能的には、両方のメソッドは意味的に同等であり、同じデカルト積を生成します。ただし、カンマ区切り結合は時代遅れのレガシー構文です。 SQL-92 標準に準拠した CROSS JOIN
は、特にコンマ区切りの結合では不可能な OUTER JOIN
を使用する場合に、推奨され、より読みやすいアプローチです。
固有のパフォーマンスの違いは無視できますが、最新のデータベース システムとの互換性を高め、現在の SQL 標準に準拠するために CROSS JOIN
を推奨します。 これにより、コードの可読性が向上し、将来の互換性の問題の可能性が軽減されます。
カンマ区切り結合と CROSS JOIN
はどちらも同じ結果 (デカルト積) を生成します。 ただし、CROSS JOIN
は、SQL-92 準拠とより広範な機能を備えているため、優れた選択肢です。 慎重に検討しないと、デカルト積が予想外に大きな結果セットになる可能性があることに注意してください。 いずれかの方法を使用する前に、デカルト積を作成することの意味を必ず理解してください。
以上がSQL の CROSS JOIN とカンマ区切り結合: 違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。