JOIN
MySQL'de niteliksiz yazmak ima eder INNER JOIN
. Başka bir deyişle, INNER
giriş INNER JOIN
isteğe bağlıdır. INNER
ve CROSS
MySQL'de eşanlamlıdır. Netlik için yazıyorum JOIN
veya INNER JOIN
bir katılma koşulum CROSS JOIN
varsa ve bir koşulum yoksa.
Birleşimler için izin verilen sözdizimi belgelerde açıklanmıştır .
Şu anda tek başına bir JOIN'in virgül ve WHERE cümleleri kullanmaktan başka bir şey olmadığını düşünüyorum (aynı).
Etki aynı, ancak arkasındaki geçmiş farklı. Virgül sözdizimi ANSI-89 standardındandır. Bununla birlikte, bu sözdizimiyle ilgili bir dizi sorun vardır, bu nedenle ANSI-92 standardında JOIN anahtar sözcüğü tanıtılmıştır.
Virgül yerine her zaman JOIN sözdizimini kullanmanızı şiddetle tavsiye ederim .
T1 JOIN T2 ON ...
daha okunabilir T1, T2 WHERE ...
.
- Daha sürdürülebilir çünkü tablo ilişkileri ve filtreler karıştırılmak yerine açıkça tanımlanmıştır.
- JOIN sözdizimini OUTER JOIN'e dönüştürmek, virgül sözdiziminden daha kolaydır.
- Virgül ve JOIN sözdizimini aynı ifadede karıştırmak, öncelik kuralları nedeniyle ilginç hatalar verebilir.
- JOIN sözdizimini kullanırken yanlışlıkla bir kartezyen ürün yaratma olasılığı, unutulmuş bir birleştirme yan tümcesi nedeniyle daha az olasıdır çünkü birleşim yan tümceleri birleşimlerin yanına yazılır ve eksik olup olmadığını görmek kolaydır.