0
일부 MySQL 테이블을 사용하고 있습니다. 그 구조는 다음과 같습니다.조인 쿼리에 다른 매개 변수 추가
"로그인"
loginid username password email actcode disabled activated created points website location age gender
각 사용자는은 loginid을 갖는다
"제출"
상기 제출 테이블에서submissionid loginid title slug url displayurl datesubmitted
상기 "은 loginid"는의은 loginid 인 제출 한 사용자.
"코멘트": 위의 코멘트 테이블에서
commentid loginid submissionid comment datecommented
는, "은 loginid"는 코멘트를 한 사용자의은 loginid입니다. "submissionid"는 의견이 제출 된 제출물입니다.
아래의 쿼리는 loginid가 존재하는 일수 + loginid에 의한 전체 제출 수 * 10 + loginid에 의한 의견별로 상위 25 개의 loginids를 순위 지정합니다.
나는 또 하나의 요인 포함시킬:
- 테이블의 모든 submissionids 얻기 : 그것은 다음이 필요 (10)
*합니다 (은 loginid 제출했다고 submissionids에 만든 총 의견) 주어진에 대한 "제출"그 submissionids이 테이블 "코멘트"에있는 항목의 총 수를 합산
- 을은 loginid
호 내가 할 수 있을까? 사전에
감사합니다,
존
$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";