Eğitm Sayısı :532
AnasayfaMysql DersleriMysql Dersleri | Mysql Inner Join , Cross Join, Left Join ve Right Join

Mysql Dersleri | Mysql Inner Join , Cross Join, Left Join ve Right Join

Mysql Dersleri

Tablolar arası bağlantı kurarken birden fazla kullandığımız bağlantı çeşitler var bunlar üç tanesinden bahsedeceğim bu anlatımımda.Şimdi bu bağlantı çeşitlerinin neden ihtiyaç duyulduğundan ve kullanımından bahsedelim.

Notlar Tablosu

notId ogrenciId dersId vize final
1 1 1 60 45
2 2 3 69 75
3 3 3 56 76
4 3 5 67 89
5 4 2 80 50
6 5 5 60 76
7 6 4 26 70
8 7 2 90 35
9 8 1 60 56
10 9 2 54 45
11 4 3 58 98

Öğrenci Tablosu

ogrenciId ad soyad okulNo bolumId
1 Mehmet Durmaz 1250 1
2 Ahmet Yıkılmaz 1452 1
3 Ayşe NULL 1656 2
4 Melek Tunc 1245 2
5 Seher Ay 2364 5
6 Şakir Yok 1025 4
7 Abbas Kırmızı 1436 3
8 Ayşe Pekmez 1237 2
9 Mert Günaydın 2563 5
10 Ahmet Şeker 2222 3

Cross Join(Çapraz Birleştirme)

Çapraz birleştirmeyi birleştirdiğimiz tablolar arasında ki bütün kombinasyonları yaparak o satırları getirir. Örnek verecek olursak bir tablonuzda 5 satır olsun diğer tablonuzda 2 satır olsun 2X5 den 10 tane satır gelecek yani çokta kullanışlı bir bağlantı olduğunu söyleyemem o yüzden ama bazen ihtiyaç dahilinde kullanılmakta.Aşağıdaki sorgumuzu yukarıdaki tabloları referans alarak yazarsak toplamda 11*10 dan 110 satırlık bir veri gelecektir.

Cross Bağlantısında Where ifadesi kullanırsak ?

Bu sefer İfademizde Where ifadesi kullanarak bir şart ile verilerimizi getirelim.Aşağıdaki şekilde kodumuzu yazdığımızda her iki tabloda eşleşen veriler gelecektir. Eğer bir tabloda aynı veriden iki tane varsa bizim notlar tablomuzda bundan var Ayşe ve Melek isimli veriden iki tane göreceksiniz bunun nedeni notlar tablosundan bunlardan 2 tane olmasıdır.Öğrenci Tablotablomuzda 10 numaralı kayıt dikkat ettiyseniz gelmedi çünkü sadece öğrenci tablomuzda bulunduğu için gelmedi.

Ad soyad okulNo
Mehmet Durmaz 1250
Ahmet Yıkılmaz 1452
Ayşe NULL 1656
Ayşe NULL 1656
Melek Tunc 1245
Seher Ay 2364
Şakir Yok 1025
Abbas Kırmızı 1436
Ayşe Pekmez 1237
Mert Günaydın 2563
Melek Tunc 1245

Inner Join

Cross Join Bağlantısında yaptığımız gibi Inner join ile de yapabiliriz. Bu sefer sorgumuzda biraz daha farklı yazacağız . Inner Join de bütün tablolarda ortak veriler olmak zorunda A tablosunda X verisi varsa B tablosunda da olmalı aksi halde o satır gelmez.Şöyle bir örnek verebiliriz yukarıdaki notlar ve öğrenci tablolarımızı düşünürsek öğrenciler tablosunda olup ta notlar tablosunda olmayan bir öğrencinin satırı ekrana gelmez. Aşağıdaki Sql cümlemizi çalıştırdığımızda yukarıda vermiş olduğumuz Sql cümlesinin verdiği sonucu verecektir.Öğrenci Tablotablomuzda 10 numaralı kayıt dikkat ettiyseniz gelmedi çünkü sadece öğrenci tablomuzda bulunduğu için gelmedi.

Ad soyad okulNo
Mehmet Durmaz 1250
Ahmet Yıkılmaz 1452
Ayşe NULL 1656
Ayşe NULL 1656
Melek Tunc 1245
Seher Ay 2364
Şakir Yok 1025
Abbas Kırmızı 1436
Ayşe Pekmez 1237
Mert Günaydın 2563
Melek Tunc 1245

left Join

Left join ile ilk tabloda olanların hepsi gelir ve bununla beraber ikinci tabloda uyuşan satılar gelir. Yani İlk tablodan bütün kayıtlar gelirken ilk tablo ile ikinci tablo arasında eşleşen verilerde gelir. Dikkat ederseniz left join ifadesinin solunda bulunan ilk tablomuz sağından bulunan ikinci tablomuz ve ilk tablomuzdaki bütün veriler geldi bunu “Ahmet Şeker” kayıtının gelmesiyle görebiliriz.

Ad soyad okulNo
Mehmet Durmaz 1250
Ahmet Yıkılmaz 1452
Ayşe NULL 1656
Ayşe NULL 1656
Melek Tunc 1245
Seher Ay 2364
Şakir Yok 1025
Abbas Kırmızı 1436
Ayşe Pekmez 1237
Mert Günaydın 2563
Melek Tunc 1245
Ahmet Şeker 2222

Right Join

Left Join gibi aynı mantıkla çalışmaktadır ama left join de birinci tablonun hepsi gelmekteydi bunda ise ikinci tablonun hepsi gelmekte eğer birinci tablo ile eşleşen satırlar da varsa onlarda gelir. Aşağıdaki Sql cümlemizin sonucunda “Ahmet Şeker” kayıt’ının gelmemesiyle anlayabiliriz.

Ad soyad okulNo
Mehmet Durmaz 1250
Ahmet Yıkılmaz 1452
Ayşe NULL 1656
Ayşe NULL 1656
Melek Tunc 1245
Seher Ay 2364
Şakir Yok 1025
Abbas Kırmızı 1436
Ayşe Pekmez 1237
Mert Günaydın 2563
Melek Tunc 1245
Kod Adı : Kodlama D
Mysql Dersleri | Mys

ademyalcin27@gmail.com

Oy
Henüz yorum yapılmadı . İlk sen neden yorum yapmayasın ?

Yorum yap

CAPTCHA (Şahıs Denetim Kodu) Resmi

*