• 22-10-2014, 22:33:34
    #1
    Selam, mysql ile ilgili karmaşık bir işlemi yapamadım size sorayım dedim.

    Bir adet makale bir adet üyeler tablom var. Benim bu makaleleri önce üyelerin kayıt oldukları tarihe daha sonra id lerine göre listelemem gerekiyor.

    select * from makale LEFT JOIN uyeler ON uyeler.id= makale.gonderen  order by uyeler.kayittarihi desc,makale.id desc
    bunu yukardaki sorguyla yapabiliyorum ancak benim istediğim son üye olanların makaleleri en üstte çıksın ama yalnızca son gönderdiği. Benim yaptığım sorguda son üye olan kişinin tüm yazılarını idlerine göre listeliyor o bitince bir sonraki üyeye geçiyor, benim istediğim son üyenin sadece 1 tanesini yazdırsın sonra öteki üyeye geçip sadece bir tane yazdırsın bu şekilde makale ekleyen üyeler bitince de kalan makaleleri id lerine göre listelesin. Bu sadece mysql sorgusu ile mümkün müdür?
  • 23-10-2014, 12:06:28
    #2
    SELECT *
    FROM makale INNER JOIN uyeler ON uyeler.id=makale.gonderen
    WHERE id IN (
    SELECT MAX(M.id) AS MAKALE_ID
    FROM makale AS M
    GROUP BY M.gonderen
    ORDER BY M.id desc
    )
    ORDER BY uyeler.id desc
    dener misin?
  • 23-10-2014, 15:59:40
    #3
    bentayfun adlı üyeden alıntı: mesajı görüntüle
    SELECT *
    FROM makale INNER JOIN uyeler ON uyeler.id=makale.gonderen
    WHERE id IN (
    SELECT MAX(M.id) AS MAKALE_ID
    FROM makale AS M
    GROUP BY M.gonderen
    ORDER BY M.id desc
    )
    ORDER BY uyeler.id desc
    dener misin?
    Oldu ayrıca aynı sorguyla çözemediğim bir sorguyu daha yapabildim çok teşekkür ederim.