Aşağıdaki sorgu iyi çalışıyor. Giriş, sunulması, ve yorum: Bu 3 MySQL tablodan bilgi çeker.
Bu değerlerin hesaplanmasında esas totalScore2 denilen bir değer bu üç tablolardan çekti oluşturur.
MySQL tablo "yorum" ve "teslim" hem de aşağıdaki alanları var:
loginid submissionid
Tablosunda "sunulması," her "submissionid" tek giriş / satır vardır, ve böylece sadece bir "LoginID" ile ilişkili.
Tablosunda "açıklama," alan "submissionid" birkaç giriş / satır olabilir, ve çoklu ile ilişkili olabilir s "LoginID".
"Açıklama" in "submissionid" s biridir her zaman o tablo içinde "gönderme," Ben aşağıda denkleme bir faktör olarak eklemek istiyorum olduğu aynı "LoginID" ile ilişkilidir. Ben bu kez (-10) gibi birden çok örneğini istiyorum.
Bunu nasıl yapabilir?
Teşekkür peşin,
John
$sqlStr2 = "SELECT
l.loginid,
l.username,
l.created,
DATEDIFF(NOW(), l.created) + COALESCE(s.total, 0) * 5 + COALESCE(scs.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
LEFT JOIN (
SELECT S2.loginid, COUNT(1) AS total
FROM submission S2
INNER JOIN comment C2
ON C2.submissionid = S2.submissionid
GROUP BY S2.loginid
) scs ON scs.loginid = l.loginid
GROUP BY l.loginid
ORDER BY totalScore2 DESC
LIMIT 25";