繁体   English   中英

MYSQL SUM和INNER JOIN

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM