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

如何统计关联表总记录数?以discursion与response_discursion表为例

问题修复与优化方案

你的SQL语句无法运行的原因是子查询里错误使用了ON关键字,关联主表的条件应该用WHERE来指定。下面提供两种可行的解决方案:

方案一:修正子查询写法

把原SQL中的ON替换为WHERE即可正常执行:

SELECT D.ID_Discursion, 
       D.TEXT_Discursion, 
       Total_Response = 
         (
          SELECT COUNT(RD.ID_ResponseDiscursion) 
          FROM response_discursion AS RD 
          WHERE RD.ID_Discursion = D.ID_Discursion
         ) 
FROM discursion AS D;

方案二:更高效的LEFT JOIN + GROUP BY写法

如果数据量较大,子查询的性能不如JOIN方式,推荐用LEFT JOIN结合分组统计,还能保证无回复的问题也被返回(此时回复数为0):

SELECT 
    D.ID_Discursion,
    D.TEXT_Discursion,
    COUNT(RD.ID_ResponseDiscursion) AS Total_Response
FROM discursion AS D
LEFT JOIN response_discursion AS RD 
    ON RD.ID_Discursion = D.ID_Discursion
GROUP BY D.ID_Discursion, D.TEXT_Discursion;

另外注意:你提供的response_discursion表表头存在笔误,两个列都命名为ID_ResponseDiscursion,实际应该是其中一个为关联问题的外键ID_Discursion,否则关联条件会失效,需要先修正表结构的这个问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 03:45:33