$sql = mysql_query("SELECT totals.*, sum(totals.payments) as total_payments
FROM totals
INNER JOIN users
GROUP BY totals.idseller;");
当我添加内部连接时,总和值发生了变化。为什么?
在我的SQL表中,我有一个记录的总宽度,这个值:8943.09,但是当我做一些时,结果给了我这个值:44715.45
我做错了什么?
$sql = mysql_query("SELECT totals.*, sum(totals.payments) as total_payments FROM totals
INNER JOIN users ON totals.idseller = users.idseller
GROUP BY users.UserName;");
使用这个希望这会帮助你。
当您 INNER JOIN 到另一个表时,返回的数据集将被修改为仅包含两个表中存在的行。在这种情况下,"总计"中的行很可能在用户中没有匹配的行 - totals.idseller 字段可能接受空值,或者在删除或编辑匹配的用户时数据已成为孤立项。
如果您希望所有数据都在"总计"中,而不管匹配的用户如何,您将在ms-sql中使用LEFT JOIN,我怀疑类似的方法将在my-sql中起作用
您应该根据 id 给出一个"on"。如喜欢
inner join users on users.id = totals.idseller
其他方式,sql 服务器将合并表中所有可能的行,这在大多数情况下不是您想要的。
因为当您在 SQL 查询中添加内部联接时,这意味着您正在选择两个表中通用的数据。前任:
SELECT * FROM TABLE_A
INNER JOIN TABLE_B
ON TABLE_A.ID = TABLE_B.ID
如果您要连接包含 5 条记录的用户表。通过连接表,由于没有任何列映射,此汇总 5 次,这就是显示不同值的原因。
请让我知道其中的错误。
谢谢乌梅斯