当满足以下条件时,下面的查询从MySQL表“comment”中总结points
:
找到loginid
时的l.username = '$profile'
。
发现所有submissionid
的{{1}}都来自上面的#{1}}。
找到上面#2中loginid
s的所有commentid
,并将相应的submissionid
相加。
现在,我怎样才能创建一个不同的查询来返回上面#3中所有points
的数组而不是总结comment
?
以下是涉及的MySQL表:
登录:
point
提交内容:
logind username created activated
注释:
submissionid loginid
查询:
commentid submissionid points comment
答案 0 :(得分:0)
不是那么简单:
SELECT l.loginid, l.username, l.created, l.activated, scs.commentid, scs.comment
FROM login AS l
LEFT JOIN (SELECT S2.loginid, c2.commentid, c2.comment
FROM submission AS S2
JOIN comment AS C2 ON S2.submissionid = C2.submissionid
) AS scs ON scs.loginid = l.loginid
WHERE l.activated = 1
AND l.username = '$profile'
ORDER BY scs.commentid DESC;
原版中的外部GROUP BY没有做任何有用的事情。原文中的ORDER BY在此处被注释ID的相反顺序替换,这是反向时间顺序的近似值(换句话说,最近的第一个)。