Php SQL查询指南-结果复制

Php SQL查询指南-结果复制,php,sql,phpmyadmin,Php,Sql,Phpmyadmin,真的需要一些指导,我有一个网站,人们可以上传图片到比赛,他们得到一个结果分数,我想拿出一个领导委员会,看看大家都做得怎么样。然而,我的SQL查询中有重复的人名,有人能告诉我在哪里修改我的查询,以便将1人参加3场比赛的结果相加,并且在输出中只显示一次总分。结果保存在tblMembEntComp fldResult中 我目前得到的是: 我的PHP代码: 更新: 我已经按照下面用户的建议尝试了GROUP BY函数,但是我被抛出了错误: 您应该按tblMember主键按查询分组,如下所示: <?p

真的需要一些指导,我有一个网站,人们可以上传图片到比赛,他们得到一个结果分数,我想拿出一个领导委员会,看看大家都做得怎么样。然而,我的SQL查询中有重复的人名,有人能告诉我在哪里修改我的查询,以便将1人参加3场比赛的结果相加,并且在输出中只显示一次总分。结果保存在tblMembEntComp fldResult中

我目前得到的是:

我的PHP代码:

更新: 我已经按照下面用户的建议尝试了GROUP BY函数,但是我被抛出了错误:


您应该按tblMember主键按查询分组,如下所示:

<?php
    $query = "SELECT `tblMember`.`fldFName`, `tblMember`.`fldSName`, `tblMembEntComp`.`fldResult`, `tblMember`.`fldId` FROM `tblMember` AS `tblMember` JOIN `tblMembEntComp` as `tblMembEntComp` ON `tblMember`.`fldMemberID` = `tblMembEntComp`.`fldMemberID` GROUP BY `tblMember`.`fldId` ORDER BY `fldResult` DESC";

    $result = $conn -> query($query);

    while($row = $result -> fetch_assoc()) 
        {
            echo $row['fldFName']." ".$row['fldSName']." ".$row['fldResult']."<br>";
        } 
?>

您可以按字段更新分组作为主键。希望它能帮助您:

您似乎想要一个聚合查询。比如:

SELECT m.fldSName, SUM(mec.fldResult) as fldResult
FROM tblMember m JOIN 
     tblMembEntComp mec
     ON m.fldMemberID =mec.fldMemberID
GROUP BY m.fldSName
ORDER BY SUM(mec.fldResult) DESC

您可以通过使用用户的独特功能来检索当前分数。例如,电子邮件地址名称是否唯一?group by and sum come to mindHi@user3783243我还没有使用sum,你知道这个sum在查询中的位置吗?这取决于,如果名称不唯一,你将无法使用它,因为你将两个不同的人添加到一起。@user3783243所以是的,将有唯一的fldMemberID?还需要一个sum。否则,查询只会随机选择多个值中的一个并显示它。您好,我尝试了上面所说的GROUP BY tblMember.fldMemberID,但是我抛出了一个错误:1055-SELECT列表的表达式3不在GROUP BY子句中,并且包含未聚合的列“photographyclub.tblMembEntComp.fldResult”,该列在功能上不依赖于GROUP BY子句中的列;这与sql\u mode=only\u full\u组不兼容_by@K.Haydock您使用的是mysql 5.7+?MAMP 5.2,它在主页上说它是最新的:--@K.Haydock I dunno MAMP,您能连接到mysql实例并查看它在运行什么吗?选择@@version。我想这已经做到了,但是作为一个新手,我根本不理解这个逻辑。所以m。还有mec。如果您想让表名写得简短一些,那么这些只是占位符吗?我应该在哪里将fldFName也添加到输出中,所以它的名字,姓氏,然后结果:-P.S Yourock@K.Haydock . . . m和mec是表别名。它们被用作表名的缩写来限定列,也就是说,包括列名中的表引用,如m.fldSName中的。明白了谢谢,我尝试在SELECT之后的开头添加m.fldFname,但它不喜欢这样。您是否知道添加该列的正确位置,以便输出为firstName、姓氏、Result:--@K.Haydock。SELECT中包含的任何列都必须是聚合函数(如MIN)的参数或GROUP BY子句中的参数。Hi@GordonLinoff我知道有一段时间过去了,但我重新阅读了查询,并认为我重复了表名,在表名之后放置了m和mec,也就是说,从tblMember tblMember JOIN tblmemberntcomp tblmemberntcomp中,我删除了每个表中的一个,并且查询不再工作。我可以问一下,为什么我们要一个接一个地重复表名吗?
SELECT m.fldSName, SUM(mec.fldResult) as fldResult
FROM tblMember m JOIN 
     tblMembEntComp mec
     ON m.fldMemberID =mec.fldMemberID
GROUP BY m.fldSName
ORDER BY SUM(mec.fldResult) DESC