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

MySQL多表关联统计:查询用户在其他关联表中的对应记录总数

对应MySQL查询语句

SELECT 
    u.name,
    COALESCE(v.visit_count, 0) AS `total in visitors`,
    COALESCE(t.team_count, 0) AS `total in teams`
FROM users u
LEFT JOIN members m ON u.user_id = m.user_id
LEFT JOIN (
    SELECT fingerprint_id, COUNT(*) AS visit_count 
    FROM visitors 
    GROUP BY fingerprint_id
) v ON m.fingerprint_id = v.fingerprint_id
LEFT JOIN (
    SELECT user_id, COUNT(*) AS team_count 
    FROM teams 
    GROUP BY user_id
) t ON u.user_id = t.user_id
ORDER BY u.user_id;

逻辑说明

  • 先通过子查询分别统计visitors表每个指纹ID的总记录数、teams表每个用户ID的总记录数,避免直接关联多表产生笛卡尔积导致计数错误
  • 用LEFT JOIN关联各表,保证所有用户都会展示在结果中
  • 用COALESCE函数将无记录的空值转换为0,符合统计场景的展示习惯

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 05:30:03