Mysql’de İki Tablodaki Ortak Sütunları Kullanarak Sorgulamak [Join Kullanımı]

Benim elimde okul isimli bir veritabanım var ve bu veritabanı içinde asinifi ve ogrenciler isimli tablolarım var diyelim.

asinifi tablosunda; id, okulno
ogrenciler tablosunda id, okulno, ad, soyad, cinsiyet isimli sütunlar mevcut örneğimizi bunlara göre yapacağız.

asinifi tablosu şu şekilde;

ogrenciler tablosu ise şöyle;

 

SELECT * from asinifi, ogrenciler

Sorgunun ekran çıktısı aşağıdaki gibi olacaktır.

Bu tablo yukarıdaki 2 tablonun kartezyen çarpımıdır.

Görmüş olduğunuz tabloda ortak iki sütun adı var bunlar id ve okulno sütunları. Bizim işimize ortak alanlardan okulno sütunu yarayacak çünkü asinifi tablosunu baz alarak bu tabloda yer alan öğrencilerin okul numaralarıyla ad soyad bilgilerini ogrenciler tablosu içinden çekebileceğiz.

Bunu yapmak için Şimdi sorgumuzu aşağıdaki gibi değiştirelim:

SELECT asinifi.okulno , ogrenciler.ad , ogrenciler.soyad FROM ogrenciler , asinifi WHERE asinifi.okulno = ogrenciler.okulno

Sorgunun çıktısı şöyle olacaktır;

Görmüş olduğunuz gibi asinifi tablosunda zaten 2 kayıt vardı ve ad soyad bilgiler yoktu o bilgileri ogrenciler tablosundan çekerek birleştirmiş olduk.

Eğer okul numarasından sorgu yapıp ögrencinin ad soyad bilgisi yazmaya dayalı bir senaryomuz olduğunu varsayarsak örnek veritabanımızda yer alan 123321 olarak girilen okul numarasını veri tabanı içinde aratıp öğrencinin ad soyad bilgisi yazmak için kullanacağımız sorgu mantığı şöyle olacaktır;

SELECT asinifi.okulno , ogrenciler.ad , ogrenciler.soyad FROM ogrenciler , asinifi WHERE asinifi.okulno = ogrenciler.okulno AND asinifi.okulno=123321

Sorgu Sonucu şöyle gelecektir:

Umarım işinize yaramıştır, konuyla alakalı ilave etmek yada sormak istediğiniz bir şey varsa yorumlarınızı bekliyor olacağım iyi çalışmalar