Ne varsayılan MySQL davranış KATILMAK, İÇ veya DIŞ?
İnternet üzerinden son bir saat, okuma ve bu basit soruya kesin bir cevap arıyorum bakmaya başladım.
Varsayılan MySQL KATILMAK nedir?
SELECT * FROM t1 JOIN t2
Aynıdır
SELECT * FROM t1, t2
OR
SELECT * FROM t2 INNER JOIN t2
Kullandığınızda ilgili bir soruya da, "NEREDE" yan veya BİRLEŞTİRME İÇ aynı şey mi ?
Şu anda tek başına düşünüyorum KATILMAK virgül ve WHERE kullanarak aynıdır.
CEVAP
JOIN
MySQL yazılı olarak niteliksiz INNER JOIN
anlamına gelir. Diğer bir deyişle INNER JOIN
INNER
isteğe bağlıdır. INNER
CROSS
MySQL eş anlamlı. Açıklık getirmek için, eğer varsa bir durum yok olsaydı zaten durumu katılın ve 12 ** Ben JOIN
INNER JOIN
yazıyorum.
Birleştirmeler için izin sözdizimi documentation tarif.
Şu anda tek başına düşünüyorum KATILIN ve maddeleri daha sonra hiçbir şey () aynı virgül kullanıyor.
Etkisi aynıdır, ama onların arkasında tarihi farklı. Virgül sözdizimini ANSI-89 standart. Ancak ANSI-92 standardı KATIL anahtar kelimesi kullanılmaya başlandı yani bu sözdizimi ile ilgili sorunlar vardır.
Şiddetle tavsiye ederimher zamankullanım sözdizimi yerine virgül KATIL.
T1 JOIN T2 ON ...
T1, T2 WHERE ...
daha okunabilir.- Tablo ilişkileri ve filtreler açıkça yerine birlikte tanımlanmış karışık olduğundan daha rahat.
- Sözdizimi virgül sözdizimi daha DIŞ BİRLEŞTİRME dönüştürmek için kolay KATILIN.
- Aynı açıklamada virgül ve BİRLEŞİM sözdizimini karıştırma meraklı hataları öncelik kuralları nedeniyle verebilirsiniz.
- Bu daha az olasılıkla yanlışlıkla oluşturmak bir kartezyen ürün kullanırken KATILIN sözdizimi nedeniyle unutulmuş bir join yan tümcesi, çünkü katılmak cümlelerdir yazılı yanında katıldı ve kolay görmek için bir kayıp.
"Varsayılan davranış;git push" ol...
Nasıl MySQL bir Datetime sütun için va...
Sil Katılmak ile MySQL...
MySQL ınsert NULL veya boş bir dize iç...
'daha hızlı s, AYRI veya GRUP MyS...