SORU
11 Aralık 2010, CUMARTESİ


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
11 Aralık 2010, CUMARTESİ


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.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Avast

    Avast

    27 NİSAN 2006
  • theatre2film

    theatre2film

    12 NİSAN 2006
  • Wronchi Animation

    Wronchi Anim

    9 Mayıs 2011