J'utilise des tables MySQL. Leurs structures sont énumérées ci-dessous.Ajout d'un autre paramètre à une requête de jointure
"login":
loginid username password email actcode disabled activated created points website location age gender
Chaque utilisateur dispose d'un loginid
"soumission":
submissionid loginid title slug url displayurl datesubmitted
Dans le tableau de présentation ci-dessus, la "loginid" est le loginid du utilisateur qui a soumis la soumission.
"commentaire":
commentid loginid submissionid comment datecommented
Dans le tableau de commentaire ci-dessus, "loginid" est le loginid de l'utilisateur qui a fait le commentaire. "submissionid" est la soumission sur laquelle le commentaire a été fait.
La requête ci-dessous classe les 25 premiers login par (date de création du loginid) + (total des soumissions par le loginid) * 10 + (commentaires du loginid).
Je voudrais inclure un autre facteur: (nombre total de commentaires sur submissionids fait que le loginid a soumis) * 10.
Il exige ce qui suit:
- Obtenir tous submissionids dans le tableau « soumission » pour une donnée loginid
- le nombre total Résumant d'entrées dans la table « commentaire » qui ont ces submissionids
Ho w je peux faire ça?
Merci à l'avance,
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";