INNER JOIN,
LEFT JOIN,
RIGHT JOINve
FULL JOIN` arasındaki fark nedir?
içinde MySQL?
The Code Project'teki** bu orijinal makaleyi okumak size çok yardımcı olacaktır: SQL Birleşimlerinin Görsel Gösterimi.
Ayrıca bu gönderiyi de kontrol edin: SQL SERVER - Daha İyi Performans - LEFT JOIN mi NOT IN mi?.
Orijinalini şurada bulabilirsiniz: MySQL'de JOIN ve OUTER JOIN arasındaki fark.
INNER JOIN verilen ON cümlesine göre her iki tablo arasında ortak olan tüm kayıtları alır.
SOL JOIN, SOL bağlantılı tablodaki tüm kayıtları alır, ancak SAĞ tablodan bazı sütunları seçtiyseniz, ilgili kayıt yoksa, bu sütunlar NULL içerecektir.
RIGHT JOIN yukarıdaki gibidir ancak RIGHT tablosundaki tüm kayıtları alır.
FULL JOIN her iki tablodaki tüm kayıtları alır ve ilgili kayıtların karşı tabloda bulunmadığı sütunlara NULL koyar.
İki veya daha fazla tablodan satırları birleştirmek için bir SQL JOIN cümlesi kullanılır, aralarındaki ortak bir alana dayanmaktadır.
SQL'de farklı birleştirme türleri mevcuttur:
INNER JOIN: her iki tabloda da bir eşleşme olduğunda satırları döndürür.
SOL JOIN: sağ tabloda eşleşme olmasa bile sol tablodaki tüm satırları döndürür.
RIGHT JOIN: sol tabloda eşleşme olmasa bile sağ tablodaki tüm satırları döndürür.
TAM KATILIM: Hem sol hem de sağ dış birleşimlerin sonuçlarını birleştirir.
Birleştirilmiş tablo her iki tablodaki tüm kayıtları içerecek ve her iki taraftaki eksik eşleşmeler için NULL'leri dolduracaktır.
SELF JOIN: SQL deyiminde en az bir tabloyu geçici olarak yeniden adlandırarak, tablo iki tabloymuş gibi bir tabloyu kendisine birleştirmek için kullanılır.
CARTESIAN JOIN: iki veya daha fazla birleştirilmiş tablodaki kayıt kümelerinin Kartezyen çarpımını döndürür.
İlk dört birleşimin her birini ayrıntılı olarak ele alabiliriz:
Aşağıdaki değerlere sahip iki tablomuz var.
TabloA
id firstName lastName
.......................................
1 arun prasanth
2 ann antony
3 sruthy abc
6 new abc
TabloB
id2 age Place
................
1 24 kerala
2 24 usa
3 25 ekm
5 24 chennai
....................................................................
YENİ KATILIM
Not :iki tablonun kesişimini, yani TabloA ve TabloB'de ortak olan satırları verir
Sözdizimi
SELECT table1.column1, table2.column2...
FROM table1
INNER JOIN table2
ON table1.common_field = table2.common_field;
Örnek tablomuzda uygulayın:
SELECT TableA.firstName,TableA.lastName,TableB.age,TableB.Place
FROM TableA
INNER JOIN TableB
ON TableA.id = TableB.id2;
Sonuç Olacak
firstName lastName age Place
..............................................
arun prasanth 24 kerala
ann antony 24 usa
sruthy abc 25 ekm
LEFT JOIN
Not : TabloA'daki tüm seçili satırları ve TabloB'deki tüm ortak seçili satırları verecektir.
Sözdizimi
SELECT table1.column1, table2.column2...
FROM table1
LEFT JOIN table2
ON table1.common_field = table2.common_field;
Örnek tablomuzda uygulayın:
SELECT TableA.firstName,TableA.lastName,TableB.age,TableB.Place
FROM TableA
LEFT JOIN TableB
ON TableA.id = TableB.id2;
Sonuç
firstName lastName age Place
...............................................................................
arun prasanth 24 kerala
ann antony 24 usa
sruthy abc 25 ekm
new abc NULL NULL
SAĞ KATILIM
Not : TabloB'deki tüm seçili satırları ve TabloA'daki tüm ortak seçili satırları verecektir.
Sözdizimi
SELECT table1.column1, table2.column2...
FROM table1
RIGHT JOIN table2
ON table1.common_field = table2.common_field;
Örnek tablomuzda uygulayın:
SELECT TableA.firstName,TableA.lastName,TableB.age,TableB.Place
FROM TableA
RIGHT JOIN TableB
ON TableA.id = TableB.id2;
Sonuç
firstName lastName age Place
...............................................................................
arun prasanth 24 kerala
ann antony 24 usa
sruthy abc 25 ekm
NULL NULL 24 chennai
TAM KATILIM
Not :Her iki tablodan da seçilen tüm değerleri döndürür.
Sözdizimi
SELECT table1.column1, table2.column2...
FROM table1
FULL JOIN table2
ON table1.common_field = table2.common_field;
Örnek tablomuzda uygulayın:
SELECT TableA.firstName,TableA.lastName,TableB.age,TableB.Place
FROM TableA
FULL JOIN TableB
ON TableA.id = TableB.id2;
Sonuç
firstName lastName age Place
...............................................................................
arun prasanth 24 kerala
ann antony 24 usa
sruthy abc 25 ekm
new abc NULL NULL
NULL NULL 24 chennai
İlginç Gerçek
INNER birleştirmeler için sıra önemli değildir
(SOL, SAĞ veya TAM) DIŞ birleştirmeler için sıra önemlidir
Bu Link'i kontrol etmeniz daha iyi olacaktır, size birleştirme emri hakkında ilginç ayrıntılar verecektir