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

如何合并三个SQL查询,一次性获取关联表的累计统计总数?

合并SQL查询获取总计记录数的方案

这事儿好办,咱们可以用几种不同的SQL写法一步到位算出你要的总计69条记录,我给你列几个常用且高效的方案:

方案一:使用IN子查询(最直观)

直接在group表的查询里嵌套子查询,筛选出对应contextId=53的所有chain_id,然后统计总数:

SELECT COUNT(id) AS total_count 
FROM `group` 
WHERE chain_id IN (SELECT id FROM chain WHERE contextId=53);

注意:group是SQL的关键字,所以需要用反引号(`)把表名括起来,避免语法报错。

方案二:使用JOIN关联表(性能更优)

通过关联chain和group两张表,直接过滤出符合条件的记录并统计:

SELECT COUNT(g.id) AS total_count 
FROM `group` g 
JOIN chain c ON g.chain_id = c.id 
WHERE c.contextId=53;

这里给表起了别名g(代表group)和c(代表chain),让SQL语句更简洁。如果你的表上有合适的索引(比如chain.contextId、group.chain_id),这种JOIN方式的性能会比子查询更好。

方案三:分组统计后求和(适合需要同时看单个chain统计的场景)

如果之后你还想看到每个chain_id对应的记录数,同时得到总计,可以先分组统计再求和:

SELECT SUM(count_result) AS total_count 
FROM (
    SELECT COUNT(id) AS count_result 
    FROM `group` 
    WHERE chain_id IN (SELECT id FROM chain WHERE contextId=53) 
    GROUP BY chain_id
) AS sub_query;

这个查询会先算出每个符合条件的chain_id对应的记录数(也就是46和23),然后把这两个数相加得到总计69。

以上三种方法都能满足你的需求,根据实际场景选就行~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 06:47:44