2つの異なるテーブル間でコンマまたはジョインを使用する違いは何ですか?そのようなこれらの2つのコードとしてカンマとSQLの結合の違い
:あなたが与えた特定のコードに基づいて
SELECT studentId, tutorId FROM student, tutor;
SELECT studentId, tutorId FROM student JOIN tutor;
2つの異なるテーブル間でコンマまたはジョインを使用する違いは何ですか?そのようなこれらの2つのコードとしてカンマとSQLの結合の違い
:あなたが与えた特定のコードに基づいて
SELECT studentId, tutorId FROM student, tutor;
SELECT studentId, tutorId FROM student JOIN tutor;
を指定することが許可されているそれらを実行するときに本当の違いはありませんが、読みやすさがあり、職場での一貫性とエラー緩和問題は:
SELECT col1, col2
FROM tab1, tab2, tab3,tab4
WHERE tab1.id=tab2.tab1_id
AND tab4.id = tab2.tab3_id
AND tab4.id = tab3.tab4_id;
01:
あなたがで終わるだろう、あなたはINNER JOINを行うための昔ながらの方法を使用した場合は、4つのテーブル を持っていたと想像します
SELECT col1, col2
FROM tab1
INNER JOIN tab2 ON tab1.id = tab2.tab1_id
INNER JOIN tab3 ON tab3.id = tab2.tab3_id
INNER JOIN tab4 ON tab4.id = tab3.tab4_id;
後者はそれがで参加しているまさに右のテーブルの前であなたを示しています。明示的なINNERを使用して
は、それは次のようになり加わります。 ON句を置くことを忘れるのは難しいので、WHEREに別のANDを追加するか、間違った条件を追加するよりも、読みやすさが向上し、エラーが発生しにくくなりました。
また、明示的な記述方法を使用して他のタイプのJOINSを実行している場合は、INNERを別のものに変更するだけでコードが一貫して構築されます。
これらのような「コンマ結合」は古いコードであり、サポートされ続けることは保証されていません。また、読みやすさと柔軟性に欠けます。全体的に、それはちょうど使用することをお勧めしません。 WHERE句が正しくないため、予想よりもはるかに多くの行を取得するのは簡単です。 – Tobberoth
SQL Ansiコンソーシアムは、何十年も暗黙の結合(カンマ)を取り除こうとしています。しかし、多くのレガシーシステムと多くのレガシープログラマが存在し、それは起こりそうもありません。明示的な結合を行うと、コードがより明確になります。 – jean