首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当我向查询中添加内部联接时,查询中的和值将发生更改。

当我向查询中添加内部联接时,查询中的和值将发生更改。
EN

Stack Overflow用户
提问于 2013-12-10 10:11:53
回答 5查看 290关注 0票数 0
代码语言:javascript
运行
复制
    $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。

我做错什么了?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2013-12-10 10:18:37

代码语言:javascript
运行
复制
$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;");

利用这个希望这会帮你的。

票数 1
EN

Stack Overflow用户

发布于 2013-12-10 10:16:41

当您内部连接到另一个表时,返回的数据集将被修改为只包含两个表中存在的行。在这种情况下,“总计”中可能有在用户中没有匹配行的行-- totals.idseller字段可能接受空值,或者当匹配的用户被删除或编辑时,数据变成孤儿。

如果您想要“总计”中的所有数据,而不管是否匹配用户,您将在ms-sql中使用一个左联接,我怀疑类似的方法将在my-sql中工作。

票数 1
EN

Stack Overflow用户

发布于 2013-12-10 10:15:53

您应该根据ids给出一个" on“。像这样

代码语言:javascript
运行
复制
inner join users on users.id = totals.idseller 

否则,sql服务器将合并表中所有可能的行,这在大多数情况下都不是您所希望的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20491557

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档