• 03-10-2015, 19:30:31
    #1
    Merhaba, Başlık biraz karışık oldu ama 1 saattir kafam bunu çözmekle karıştı.
    Mysql 2 tablomuz var.
    1) Üyeler tablosu
    id,username,pass,email

    2) Eposta log tabllosu
    id, maili_gonderen_uye_id, mesaj_baslik, tarih


    Amacımız üye tablosundan üye getirmek. Koşulları şöyle
    Bu getirtmek istediğimiz üye, yeni atacağımız mesaj başlığını daha önce atmamış olmalı.

    Yani bu mesaj başlığını atmamış üyeleri listelemek ve bu listenin içinden 1. sıradakini almak. Üyeyi aldıktan sonra bu üye bu başlığı atınca eposta lo tablosuna işlenicek. Tekrar sorgu yaptığımızda bu başlığı atmamış yeni üyelerden gene 1 tane almak.

    Bunu denedim ama sonuç karmaşık. ve sonuç hüsran.
    Alıntı
    select * from uyeler as a, eposta_log as b WHERE b.mesaj_baslik='r10useviyoruz' AND a.id!=b.maili_gonderen_uye_id limit 1
  • 03-10-2015, 22:47:10
    #2
    Cam adlı üyeden alıntı: mesajı görüntüle
    Merhaba, Başlık biraz karışık oldu ama 1 saattir kafam bunu çözmekle karıştı.
    Mysql 2 tablomuz var.
    1) Üyeler tablosu
    id,username,pass,email

    2) Eposta log tabllosu
    id, maili_gonderen_uye_id, mesaj_baslik, tarih


    Amacımız üye tablosundan üye getirmek. Koşulları şöyle
    Bu getirtmek istediğimiz üye, yeni atacağımız mesaj başlığını daha önce atmamış olmalı.

    Yani bu mesaj başlığını atmamış üyeleri listelemek ve bu listenin içinden 1. sıradakini almak. Üyeyi aldıktan sonra bu üye bu başlığı atınca eposta lo tablosuna işlenicek. Tekrar sorgu yaptığımızda bu başlığı atmamış yeni üyelerden gene 1 tane almak.

    Bunu denedim ama sonuç karmaşık. ve sonuç hüsran.
    Şu kodu dener misiniz ?

    SELECT u.id, u.username, u.pass, u.email from uyeler u
    LEFT JOIN eposta_log elog ON(u.id=elog.maili_gonderen_uye_id)
    where elog.mesaj_baslik = 'r10useviyoruz'
    ORDER BY u.id
    limit 1
  • 04-10-2015, 02:36:23
    #3
    ydlgr adlı üyeden alıntı: mesajı görüntüle
    Şu kodu dener misiniz ?

    SELECT u.id, u.username, u.pass, u.email from uyeler u
    LEFT JOIN eposta_log elog ON(u.id=elog.maili_gonderen_uye_id)
    where elog.mesaj_baslik = 'r10useviyoruz'
    ORDER BY u.id
    limit 1
    SELECT * FROM uyeler WHERE id NOT IN(SELECT maili_gonderen_uye_id FROM eposta_log WHERE baslik='r10seviyoruz') order by tarih desc limit 1

    bu şekilde çözdüm teşekkürler.