Ben bazı MySQL tabloları kullanıyorum. Bunların yapıları aşağıda listelenmiştir.
"Login":
loginid username password email actcode disabled activated created points website location age gender
Her kullanıcı bir LoginID var
"Sunulmak":
submissionid loginid title slug url displayurl datesubmitted
Yukarıdaki teslim tabloda, "LoginID" teslim sunulan kullanıcı LoginID olduğunu.
"Comment":
commentid loginid submissionid comment datecommented
Yukarıdaki açıklama tabloda, "LoginID" Yorum Yaptı kullanıcı LoginID olduğunu. "Submissionid" yorumu yapıldı hangi teslimiyettir.
Aşağıdaki sorgu (LoginID varlığı olmuştur gün) tarafından ilk 25 loginids alıyor + (LoginID toplam gönderimler) * 10 + (LoginID tarafından yorum).
Ben bir faktör daha eklemek istiyorum: (submissionids yapılan toplam yorum LoginID sunmuştur) * 10.
Bu, aşağıdaki gerektirir:
- Belirli bir LoginID için masa "teslim" tüm submissionids Başlarken
- Bu submissionids var "comment" tablosundaki girişlerin toplam sayısını toplarsak
Bunu nasıl yapabilirim?
Teşekkür peşin,
John
$sqlStr2 = "SELECT
l.loginid,
l.username,
l.created,
DATEDIFF(NOW(), l.created) + COALESCE(s.total, 0) * 10 + COALESCE(c.total, 0) AS totalScore2
FROM login l
LEFT JOIN (
SELECT loginid, COUNT(1) AS total
FROM submission
GROUP BY loginid
) s ON l.loginid = s.loginid
LEFT JOIN (
SELECT loginid, COUNT(1) AS total
FROM comment
GROUP BY loginid
) c ON l.loginid = c.loginid
GROUP BY l.loginid
ORDER BY totalScore2 DESC
LIMIT 25";