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

SQL多表查询:统计门店员工数时如何同时展示门店地址信息

解决方案

要在原有查询结果中追加门店地址信息,通过两张表的关联键branchNo做关联即可,以下是两种常用实现方式:

方式1:关联后分组(执行效率更高)

SELECT 
    s.branchNo, 
    COUNT(s.staffNo) AS noStaff,
    b.postcode,
    b.city
FROM Staff s
INNER JOIN Branch b ON s.branchNo = b.branchNo
GROUP BY s.branchNo, b.postcode, b.city
HAVING COUNT(s.staffNo) > 1
ORDER BY s.branchNo;

说明:Branch表中每个branchNo对应唯一的邮编、城市信息,直接将这两个字段加到GROUP BY子句中,即可满足绝大多数数据库的分组语法校验(包括开启ONLY_FULL_GROUP_BY规则的MySQL场景)。

方式2:先统计再关联(可读性更强)

SELECT 
    stat.branchNo,
    stat.noStaff,
    b.postcode,
    b.city
FROM (
    SELECT branchNo, COUNT(staffNo) AS noStaff
    FROM Staff
    GROUP BY branchNo
    HAVING COUNT(staffNo) > 1
) stat
INNER JOIN Branch b ON stat.branchNo = b.branchNo
ORDER BY stat.branchNo;

说明:先在子查询中完成员工数的统计过滤,再和门店表关联拿地址信息,后续扩展统计逻辑时不容易出错。

如果需要保留Staff表存在但Branch表无匹配记录的门店数据,将上述语句中的INNER JOIN替换为LEFT JOIN即可,缺失的地址字段会返回NULL值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 00:24:03