Kodları lütfen aşağıdaki butonları kullanarak renklendirin. Örnek: <php> echo "Selam Dünya"; </php>
Yardım
karakter kaldı

"distinct" ile birlikte "order by max(id)" kullanımı

merhaba arkadaşlar,
distinct ile order by'daki max kodunu birlikte kullanmak istediğimde beklediğim çıktıyı alamıyorum. benim istediğim, tekrarlı konu varsa id bilgisi en büyük olanı seçsin ve sıralamayı ona göre yapsın.

SELECT distinct(konu) FROM icerik ORDER BY max(id) DESC


GROUP BY kullanarak şu şekilde yapabiliyorum ama istediğim distinct ile yapabilmek.
SELECT konu FROM icerik GROUP BY konu ORDER BY max(id) DESC
+0
-0
Cevaba KatılıyorumKatılmıyorum
Cevap Yaz Yorum Yaz Arşivime Ekle Takip Et

Doğru Cevap

  • xuma adlı üyenin fotoğrafı
    11 yıl önce yazılmış
    171 cevap - 1 soru
    Şu şekilde yapsan;
    SELECT distinct(konu) FROM icerik ORDER BY id DESC limit 1
    
    • bensedat18 adlı üyenin fotoğrafı bensedat18
      ama tek değer çekmeyecem hocam, tüm konu başlıklarını almam gerek.
      11 yıl önce yazılmış
    • xuma adlı üyenin fotoğrafı xuma
      O zaman senin yapmak istediğin tüm konuları (aynı konu başlıkları olmayacak şekilde) listeletmek ve id'ye göre sıralamak.
      Eğer öyleyse ;
      SELECT distinct(konu),id FROM icerik ORDER BY id DESC
      

      yapabilirsin.Eğer değilse istediğini biraz açarsan daha net cevap verebiliriz.
      11 yıl önce yazılmış
    • bensedat18 adlı üyenin fotoğrafı bensedat18
      "O zaman senin yapmak istediğin tüm konuları (aynı konu başlıkları olmayacak şekilde) listeletmek ve id'ye göre sıralamak."

      aynen öyle hocam fakat tekrar eden başlıklarda id si en büyük olanı almak istiyorum (amacım son eklenen içeriğe ilişkin konu başlıklarının geriye doğru sıralamasını yapmak. bu yüzden tekrar eden başlıkta en büyük id'li içeriği almak icap ediyor). bunu group ile order by max(id) olarak belirleyebiliyorduk fakat distinct ile yapamadım. şu şekilde

      SELECT distinct(konu) FROM icerik ORDER BY max(id) DESC
      


      yaptığım zaman tek konu başlığı geliyor nedense.
      11 yıl önce yazılmış
    • xuma adlı üyenin fotoğrafı xuma
      Yöntem 1 :

      SELECT konu, baslik, id
      FROM icerik AS sonuc1
      WHERE id = (
      SELECT max( id )
      FROM icerik AS sonuc2
      WHERE sonuc1.konu = sonuc2.konu ) 
      

      yöntem 2 ;

      SELECT sonuc1.konu, sonuc2.id, sonuc2.baslik
      FROM (
      SELECT max( id ) AS id, konu
      FROM icerik
      GROUP BY konu
      )sonuc1
      JOIN icerik AS sonuc2 ON sonuc1.id = sonuc2.id
      
      11 yıl önce yazılmış
    • bensedat18 adlı üyenin fotoğrafı bensedat18
      konu diye bir kolonum yoktu hocam. konu_basligi olarak kastetmiştim.
      neyse anladığım kadarıyla diyorsunuz ki bunu distinct ile yapabilme imkanım yok. doğru mudur?
      teşekkür ederim cevaplarınız için.
      11 yıl önce yazılmış
    • xuma adlı üyenin fotoğrafı xuma
      Yukardaki sorgular tam olarak istediğini yapar distinct bu durumda pek işe yaramaz
      11 yıl önce yazılmış
    • bensedat18 adlı üyenin fotoğrafı bensedat18
      tamamdır eywallah hocam.
      11 yıl önce yazılmış

Cevaplar

Hiç cevap bulunamadı.