私は明示的にLEFT JOINと言うだけでなく、単に互いに値を結合することの間のスピードについて疑問に思っています。ここでは、
SELECT example.id FROM example
LEFT JOIN finals ON example.id = finals.account_id";
対
SELECT example.id, finals.account_id
FROM example, finals
WHERE example.id = finals.account_id
私は、最初は速いとはほとんど確信していますが、私はそれを示唆する答えを見つけることができません。 (私は実際に何を 'コール'して2番目のものかを実際には分かっていない、私はそれをソフトジョインと呼びます)
これらのクエリには semic の違いがあります。
最初の結合は、左の表のすべての行を含むOUTER JOINです。 2番目はINNER JOINであり、一致しない行は含まれません。
LEFT JOIN
の代わりに JOIN
を記述した場合は、読みやすさと保守性のために最初の構文が優先される点を除いて、2つのクエリは同じです。
私は実際に何を 'コール'するのかは分かりませんが、ソフト・ジョインと呼んでいます)
2番目の構文は、MySQLが "カンマ演算子"と呼ぶものを使用します。これは、暗黙的な結合と呼ばれることもあります。 ANSI-89 join とも呼ばれます。