$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。
我做错什么了?
发布于 2013-12-10 10:18:37
$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;");利用这个希望这会帮你的。
发布于 2013-12-10 10:16:41
当您内部连接到另一个表时,返回的数据集将被修改为只包含两个表中存在的行。在这种情况下,“总计”中可能有在用户中没有匹配行的行-- totals.idseller字段可能接受空值,或者当匹配的用户被删除或编辑时,数据变成孤儿。
如果您想要“总计”中的所有数据,而不管是否匹配用户,您将在ms-sql中使用一个左联接,我怀疑类似的方法将在my-sql中工作。
发布于 2013-12-10 10:15:53
您应该根据ids给出一个" on“。像这样
inner join users on users.id = totals.idseller 否则,sql服务器将合并表中所有可能的行,这在大多数情况下都不是您所希望的。
https://stackoverflow.com/questions/20491557
复制相似问题