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

Bu İçeriğe Puan Verebilirsiniz
[Toplam: 2 Ortalama: 5]

“Mysql’de İki Tablodaki Ortak Sütunları Kullanarak Sorgulamak [Join Kullanımı]” üzerine 7 yorum

  1. Merhaba
    Benim iki tablom var. İlkinde sorularım var ikincide soru çözüm bilgileri var. İki tabloda ortak noktam soru id. Öğrencime çözmediği soruyu sormak istiyorum.
    Bir kez çözdüğü soruyu tekrar çözmesin istiyorum.
    Sorguyu nasıl yapacağımı bir türlü kafamda tasarlayamadım.
    Soru tablosunda olup takip tablomda olmayan soruların sorgusunu nasıl yazabilirim acaba
    Yardımcı olabilrmisiniz

    1. Merhabalar geç dönüş için kusura bakmayın bir süredir yorumlara bakamadım dilim döndüğü kadar ve anladığım kadar anlatmaya çalışacağım;

      A tablosu: Soru tablonuz olsun,
      B Tablosu cevaplar tablonuz olsun

      Hangi sorunun çözülüp çözülmediği sorunsalı var bunun için iki farklı yol kullanılabilir
      1. yol şu 3. bir tablo yapıp soru idlerini çözen öğrenci idlerini tutturmak
      yada
      2. yol soru A isimli soru tablosuna bir sütun açıp, Örneğin -cozenler- sütunu. Bu sütunda soruyu çözen öğrenci idlerini tutturmak.

      Listeleme işlemi yaparken de soruları göstereceğiniz where sorgusunda -cozenler- sütununda oturum açmış kullanıcının idsi olmayanları listelemek

      Umarım bir şeyler oluşmuştur kafanızda yine de yapamazsanız haberim olsun.

      1. Teşekkür ederim.
        Zaman ayırdığınız için
        Projeyi bir süre bıraktım o yüzden bende geç dönüş yaptım
        kafamda mantık oluştu en azından 🙂

  2. Merhaba

    A tablosunda bulunan veriyi koşllu olarak çekip B tablosuna nasıl update yollayabiliriz?

    Örneğin A tablosunda 1 saat önceki Dolar&Fiyat verisini, B tablosundaki Dolar ID’sinin GuncelFiyat sutununa nasıl update ile yazdırabiliriz?

    İyi çalışmalar

  3. merhaba,
    SELECT asinifi.okulno , ogrenciler.ad , ogrenciler.soyad FROM ogrenciler , asinifi WHERE asinifi.okulno = ogrenciler.okulno
    sorgusu ile asinifi.okulno = ogrenciler.okulno tablolarda bir birine eşit olanları bulduk.
    Soru : ÖĞRENCİLER tablosunda olupta ANASINIFI tablosunda olmayanları nasıl buluruz?

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.