Ecancan adlı üyeden alıntı: mesajı görüntüle
Ö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

MuhammetDemirel adlı üyeden alıntı: mesajı görüntüle
Sanırım aradığınız şu; group by ile vote deal id aynı olanları gruplandıracaksınız aynı zamanda count ile saydırıp toplamı 50 den yukarı olanları listeleteceksiniz.

https://www.w3schools.com/sql/trysql...select_groupby

Şurada bir örnek var
Socibox adlı üyeden alıntı: mesajı görüntüle
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.