[英]MYSQL SUM and INNER JOIN
我想在第一个栏目中输入名称,但出现错误。 当我让P.name发出时,查询有效,但我看不到播放器名称。
现在我有以下查询:
SELECT P.Name, P.Playernr, SUM (F.Amount)
FROM FINES F
INNER JOIN PLAYERS P
ON F.Playernr = P.Playernr
GROUP BY P.Playernr
预先感谢您的帮助
ONNO
您应该将其添加到GROUP BY
子句。
SELECT P.Name, P.Playernr, SUM (F.Amount)
FROM FINES F
INNER JOIN PLAYERS P
ON F.Playernr = P.Playernr
GROUP BY P.Name,P.Playernr
尝试这个:
SELECT MAX(P.Name) as Name, P.Playernr, SUM (F.Amount)
FROM FINES F
INNER JOIN PLAYERS P
ON F.Playernr = P.Playernr
GROUP BY P.Playernr
或将P.Name
添加到Group BY
SELECT P.Name, P.Playernr, SUM (F.Amount)
FROM FINES F
INNER JOIN PLAYERS P
ON F.Playernr = P.Playernr
GROUP BY P.Name,P.Playernr
当使用GROUP BY
,只能投影分组和汇总功能。 在投影列中删除P.Name或在GROUP BY中添加P.Name
SELECT P.Name, P.Playernr, SUM (F.Amount)
FROM FINES F
INNER JOIN PLAYERS P
ON F.Playernr = P.Playernr
GROUP BY P.Playernr, P.Name
在其他RDBMS中,查询会产生错误。
考虑以下数据:
P.Playernr P.Name
A B
A C
A D
然后,P.Name不在GROUP BY中,该值在SELECT P.Playernr中产生。 因此,您必须使用聚合函数或在GROUP BY中添加P.Name
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.