• 30-08-2016, 01:39:31
    #1
    Merhaba arkadaşlar,

    Öğrenciler ve yoklama adlarında birer tablom var.

    Öğrenciler tablosunda "tel" adlı sutunda öğreci velilerin telefon numarası var.
    Yoklama adlı tabloda ise "durum" adlı sutunda öğrecilerin 1 veya 0 olarak gösterdiğim var/yok durumları var.

    Ben yoklama tablosundaki gelmeyen öğrecilerin yani durum='0' ise öğrenciler tablosuna gidip aynı isme/id ye göre öğrencilerin telefon numalarını çekmek istiyorum.
     $cek=mysql_query("select * from ogrenciler RIGHT JOIN yoklama ON yoklama.adsoyad = ogrenciler.tel WHERE yoklama.durum='0'")
    Bu şekilde bir sorgu oluşturdum.Fakat sadece yoklama tablosundan veri çekiyor.Sorgu tam yapamadım.Yardımcı olursanız sevinirim.
  • 31-08-2016, 14:32:51
    #2
    Kimlik doğrulama veya yönetimden onay bekliyor.
    fatihclkl adlı üyeden alıntı: mesajı görüntüle
    Merhaba arkadaşlar,

    Öğrenciler ve yoklama adlarında birer tablom var.

    Öğrenciler tablosunda "tel" adlı sutunda öğreci velilerin telefon numarası var.
    Yoklama adlı tabloda ise "durum" adlı sutunda öğrecilerin 1 veya 0 olarak gösterdiğim var/yok durumları var.

    Ben yoklama tablosundaki gelmeyen öğrecilerin yani durum='0' ise öğrenciler tablosuna gidip aynı isme/id ye göre öğrencilerin telefon numalarını çekmek istiyorum.
     $cek=mysql_query("select * from ogrenciler RIGHT JOIN yoklama ON yoklama.adsoyad = ogrenciler.tel WHERE yoklama.durum='0'")
    Bu şekilde bir sorgu oluşturdum.Fakat sadece yoklama tablosundan veri çekiyor.Sorgu tam yapamadım.Yardımcı olursanız sevinirim.
    İlişkili tablolarda ortak bir tanımlayıcıya ihtiyacınız var. ogrenciler tablosunda öğrenciye ait bir id aynı zamanda yoklama tablosunda da olmalıdır. Örneğin; ogrenciler tablosunda id sütunu, yoklama tablosunda ogrenciID olarak saklanmalıdır. Böylece tabloları ilişkilendirebilirsiniz.

    Örneğe göre tabloları birleştirmek istediğinizde

    SELECT ogrenciler.*, yoklama.durum FROM ogrenciler
      LEFT JOIN ogrenciler.id = yoklama.ogrenciID
    WHERE yoklama.durum = 0
    Sorgusu işinizi görecekti. Sizin tablo yapınızı bilmiyorum ancak yaşadığınız problemin bu bölümde olduğunu düşünüyorum.

    RIGHT JOIN yoklama ON yoklama.adsoyad = ogrenciler.tel
    Değil de

    RIGHT JOIN yoklama ON yoklama.adsoyad = ogrenciler.adsoyad
    olmalı gibi duruyor.

    Adsoyad unique değildir ve bazen istemediğiniz sonuçlar elde edebilirsiniz.