首页 > 数据库 > mysql教程 > 为什么多个 LEFT JOIN 会产生不正确的访问计数?

为什么多个 LEFT JOIN 会产生不正确的访问计数?

Barbara Streisand
发布: 2025-01-23 12:19:10
原创
667 人浏览过

Why are Multiple LEFT JOINs Producing Incorrect Visit Counts?

了解多个 LEFT JOIN 的不准确访问计数

提供的查询生成不正确的访问计数,因为多个 LEFT JOIN 操作的顺序性质会导致乘法而不是加法结果。

最初,加入 grocery 表可以正确计算每个用户的杂货访问量。但是,后续的 LEFT JOINfishmarket 会为每个用户创建多行,从而有效地将每个用户的杂货访问计数乘以鱼市场访问次数。 这解释了访问这两家商店的用户计数错误的“12”。

解决方案:通过子查询进行精确聚合

使用子查询独立聚合每个商店的访问计数解决了该问题:

<code class="language-sql">SELECT u.id,
       u.account_balance,
       (SELECT COUNT(*) FROM grocery WHERE user_id = u.id) AS "# of grocery visits",
       (SELECT COUNT(*) FROM fishmarket WHERE user_id = u.id) AS "# of fishmarket visits"
FROM users u
ORDER BY u.id;</code>
登录后复制

此修改后的查询准确地统计并显示每个用户的杂货店和鱼市访问量,提供正确的聚合数据。

以上是为什么多个 LEFT JOIN 会产生不正确的访问计数?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板