BİRLEŞTİRMEK VE İÇ BİRLEŞTİRME VE TAM DIŞ BİRLEŞTİRME


27

Ben arasında bir fark olduğunu biliyorum INNER JOINve FULL OUTER JOIN:, bunu görebilirsiniz, ama iki aşağıdakilerden arasındaki fark nedir JOIN ... ON...ve INNER JOIN...ON...henüz hala ve JOIN...ON...vsFULL OUTER JOIN...ON...

Sebebi şu ki, belki de sadece üzerinde JOINçalışıyorum, üzerinde çalışmakta olduğum bir sorguyu mahvettiğini düşünüyorum .

Öyleyse temel olarak gerçek set işlemleri arasında sözdizimsel fark nedir?

Teşekkür ederim,


1
"Çapraz gönderme" aynı soruyu farklı forumlarda gönderiyor. Bir bağlantıyı gönderme tamam ve arzu edilir.
choroba

Tamam, soruya bir bağlantı göndereceğim, kodum birçok
kopyayı döndürüyor

4
@MCP_infiltrator orada muhtemelen en iyi açıklamaya bir göz atın: codinghorror.com/blog/2007/10/…
mkk

Asıl sorun, kodunuzun çok fazla sayıda yinelemeyi döndürmesiyse, bunun asıl konunun nerede olduğunu başka bir soru sormak isteyebilirsiniz. Ve kodunuzu göndermek isteyebilirsiniz. Geçmişte yinelenen problemleri olan insanlara yardım ettiğimde, bu genellikle yanlış birleştirme koşullarından ya da bazen SQL veri modeli ile ilişkisel veri modeli arasındaki zayıf eşlemeden kaynaklanıyordur.
Walter Mitty

Merhaba @WalterMitty soru SO gönderildi, benim katılımları sorun olduğunu düşünüyorum, ama başka bir not da sadece merak ettim, SQL yazma ve kendi kendine öğretim sadece 6 ay abour, bağlantı söz konusu.
MCP_infiltrator

Yanıtlar:


33

JOINve INNER JOINaynıdır, aksi belirtilmediği sürece, tüm birleşimlerin birleşik birleşme olduğu kabul edildiğinden içsel anahtar kelime isteğe bağlıdır. Arasındaki fark JOINve FULL OUTER JOINarasındaki fark olarak aynıdır INNER JOINve FULL OUTER JOIN.

A INNER JOIN, yalnızca A satırındaki bir satır B'deki birçok satırla eşleşirse eşleşen satırları döndürür.

A FULL OUTER JOIN, bir iç birleşimin yaptığı her şeyi döndürür ve eşleşmeyen tüm satırları her tablodan döndürür.


5
Teşekkürler, bunu bilmiyordum JOINve INNER JOINeşdeğer ifadelerdeydim.
MCP_infiltrator

7
En iyi uygulama, karışıklığı önlemek için açıkça INNER JOIN yazmaktır.
Neil,
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.