You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

两次NATURAL JOIN后COUNT结果错误的SQL问题排查

皮克斯电影数量统计SQL错误原因排查

错误根源

  • 重复关联同一张表引发笛卡尔积:你写的SQL里连续两次NATURAL JOIN productioncompanies,相当于把制作公司表和自身做关联后再匹配电影表。皮克斯的记录会和所有制作公司的记录交叉匹配,产生大量无意义的重复行,这直接导致统计出4803这个夸张的错误结果。
  • 未针对唯一电影统计:就算关联逻辑正确,一部电影可能对应多个制作公司,直接用COUNT(movie_id)会把所有匹配行都算进去,而非统计不重复的电影数量。

修正后的SQL写法

写法一(保留NATURAL JOIN)

SELECT COUNT(DISTINCT movie_id)
FROM movies
NATURAL JOIN productioncompanies
WHERE production_company_name = "Pixar Animation Studios"

写法二(显式指定关联字段,逻辑更清晰)

SELECT COUNT(DISTINCT m.movie_id)
FROM movies m
JOIN productioncompanies pc ON m.movie_id = pc.movie_id
WHERE pc.production_company_name = "Pixar Animation Studios"

内容的提问来源于stack exchange,提问作者Tewfiq

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 10:03:32