Öncelikle tüm fursatları listeleyecek döngünü oluştur ardından bu döngü içerisinden fırsat id sini alıp oylama tablosundan kaç adet o fırsat id sine ait oylama var ise bunları saydır bu sayım sonucu belirlediğin değerden yukarı olanları listelemede gösterirsin. Bu yöntemde sayfalama yapack isen sorun çıkartır. Bu yöntem yerine oylama yapıldığında deals tablosunada ek bir sutun ekleyerek toplam oylamayı orada gösterirsen senin için sıralama daha kolay ve performanslı olur. deals_votes tablonda aynı kullacının tekrar oylama yapmaması için gereken kontrol verisini tutmuş olursun.
Döngüm hali hazırda mevcut bir şekilde vardı ve aynı kullanıcının oylama yapmaması için de ayarlamıştım. Senin söylediğin gibi deals tablona ek bir sütun ekleyip artı değeri geldiğinde deal_value'ye +1 eksi verildiğinde ise -1 şeklinde güncelleme yaptırdım. Sanırım şu anda mantıklı olarak bu şekilde görünüyor. Teşekkürler Ahmet
deals tablosunun yapısını bilmediğim için
deals.id olarak tanımladım tabloya göre değiştirirsiniz.
SELECT *, count(deals_votes.vote_id) AS popular FROM deals
LEFT JOIN deals ON deals.id = deals_votes.vote_deal_id WHERE deals_votes.vote_value > 0
ORDER BY popular DESC
edit // aşağıdaki gibi olacak
SELECT *, count(deals_votes.vote_id) AS popular FROM deals
LEFT JOIN deals ON deals.id = deals_votes.vote_deal_id WHERE deals_votes.vote_value > 0 GROUP BY deals_votes.vote_deal_id
ORDER BY popular DESC
Sizlere de teşekkürler, sorunumu çözdüm arkadaşlar.