Açıklanması Gereken Değerler:
SahipID haber tablosunda haberin kime ait olduğunu belirtiyor.
Tur haberin ne olduğunu belirtiyor. Örnek 1 başlık açtı, 2 yorum ekledi, 3 yorum beğendi gibi düşünün.
kullanici_takip.KullaniciID bu kullanıcı takip tablomdaki takip eden kişiyi belirtiyor
Amaç: ya eklediğim başlıklar onaylanırsa bildir yada takip ettiğim kullanıcılar açtığım başlıklarda herhangi bir etkileşimde bulunduysa bana bildir.
Koşullarım:
(SahipID = BEN ve Tur = Başlık Açtı) anlamı başlık açıldı olacak veya
(SahipID = BEN ve kullanici_takip.KullaniciID = BEN ve haberler.KullaniciID != BEN ve Tur != Başlık Açtı) Anlamı takip ettiğim kullanıcılar açtığım başlıkta etkileşimde bulunacak. Sorunda burada, belirttiğim sadece takip ettiğim kullanıcılar olsun kısmı çalışmıyor. Takip etmediğim kullanıcıları da çekiyor.
SELECT haberler.KullaniciID, haberler.SahipID, basliklar.BaslikAdi, basliklar.SEO, secenekler.SecenekAdi, haberler.Tur, haberler.SahipGordu, haberler.EklendigiTarih HaberTarihi, kullanicilar.Isim, kullanicilar.Soyisim, kullanicilar.ProfilResmi
FROM haberler
LEFT JOIN basliklar ON haberler.BestofID = basliklar.BestofID
LEFT JOIN secenekler ON haberler.SecenekID = secenekler.SecenekID
LEFT JOIN kullanicilar ON haberler.KullaniciID = kullanicilar.KullaniciID
LEFT JOIN kullanici_takip ON haberler.SahipID = kullanici_takip.KullaniciID
WHERE (SahipID = 1 AND Tur = 1 AND haberler.KullaniciID = 1) OR (SahipID = 1 AND kullanici_takip.KullaniciID = 1 AND haberler.KullaniciID != 1 AND Tur != 1)
GROUP BY haberler.HaberID ORDER BY haberler.EklendigiTarih DESC LIMIT 10
Normalde mantıken haber ne olursa olsun biri başlığımda etkileşimde bulunursa bana bildir, bu sorunsuz çalışıyor ama işin içine sadece takip ettiğim kullanıcılar başlığımda etkileşimde bulunduğunda bildir olunca sorun çıkıyor.