ですから、私はこの単純な質問に対する決定的な答えを読んで探して、最後の1時間インターネットで探してきました。
MySQLのデフォルトのJOINとは何ですか?
SELECT * FROM t1 JOIN t2
それは同じですか
SELECT * FROM t1, t2
OR
SELECT * FROM t1 INNER JOIN t2
また、「WHERE」句を使用する場合の関連する質問は、JOINまたはINNER JOINと同じですか?
今のところ、スタンドアロンのJOINはコンマとWHERE句を使用するのと同じだと思っています。
MySQLでJOIN
を記述すると、非修飾はINNER JOIN
を意味します。つまり、INNER JOIN
のINNER
はオプションです。 INNER
とCROSS
はMySQLの同義語です。明確にするために、結合条件がある場合はJOIN
またはINNER JOIN
を、条件がない場合はCROSS JOIN
と書きます。
結合に許可される構文は documentation で説明されています。
現時点では、スタンドアロンのJOINは、コンマとWHERE句を使用する(と同じ)だけであると考えています。
効果は同じですが、その背後にある歴史は異なります。コンマ構文は、ANSI-89標準からのものです。ただし、この構文には多くの問題があるため、ANSI-92標準ではJOINキーワードが導入されました。
alwaysコンマではなくJOIN構文を使用することを強くお勧めします。
T1 JOIN T2 ON ...
はT1, T2 WHERE ...
より読みやすくなっています。これらはすべてCROSS JOIN
と同等であり、同等です。
コンマと[INNER | CROSS] JOIN
構文の使用にはいくつかの違いがあり、これはより多くのテーブルを結合するときに重要になる可能性があります。知っておく必要があることのほとんどは、ここで MySQL JOIN
documentation で説明されています。