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

如何用单条SQL查询获取员工表关联的城市名与州名

解决方案:多表关联查询替换外键字段

要实现用城市名和州名替换员工表中外键字段的需求,我们可以通过多表JOIN关联来关联三张表的数据,下面是具体的SQL实现:

SELECT 
    e.id,
    e.employee_Name,
    c.city_name,
    s.state_name
FROM EMPLOYEE e
JOIN CITY c ON e.city_code = c.id
JOIN STATE s ON c.state_code = s.id;

关键细节说明:

  • 给每张表起别名(e代表EMPLOYEE,c代表CITY,s代表STATE),既简化了SQL写法,也能避免不同表字段名冲突的问题。
  • 上面的JOIN是内连接,只会返回三张表中都有匹配关联数据的员工记录。如果需要包含那些没有对应城市/州信息的员工(比如city_code为NULL的情况),可以改用左连接,并给空值设置友好的默认显示:
    SELECT 
        e.id,
        e.employee_Name,
        COALESCE(c.city_name, '无对应城市') AS city_name,
        COALESCE(s.state_name, '无对应州') AS state_name
    FROM EMPLOYEE e
    LEFT JOIN CITY c ON e.city_code = c.id
    LEFT JOIN STATE s ON c.state_code = s.id;
    
    这里的COALESCE函数用来处理空值,确保结果不会出现NULL,提升可读性。
  • 如果需要保留员工表的全部原始字段,同时补充城市和州名称,可以这样写:
    SELECT 
        e.*,
        c.city_name,
        s.state_name
    FROM EMPLOYEE e
    JOIN CITY c ON e.city_code = c.id
    JOIN STATE s ON c.state_code = s.id;
    
    这样既拿到了员工的所有原始信息,又替换并补充了对应的地域名称。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 10:07:25