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

如何不使用JOIN仅通过UNION合并employees等三张SQL表

你当前的查询存在两个核心问题:

  • UNION 是用来垂直拼接多个查询结果集(上下合并行)的操作符,要求所有子查询返回的列数、对应位置的列数据类型完全一致。你三个子查询的列类型顺序错位:第一个查询第一列为字符串类型的last_name,第二列为数值类型的department_id;后两个查询第一列为数值类型的ID,第二列为字符串类型的名称,类型不匹配导致返回结果异常。
  • 如果你需要关联获取员工、对应部门、对应地点的关联信息,应该使用JOIN水平合并表字段,而非UNION。

如果你需要查询每个员工的姓名、所属部门ID、部门名称、所在地点ID、城市信息,调整后的SQL如下:

SELECT 
  e.last_name Employee_Name,
  e.department_id,
  d.department_name,
  l.location_id,
  l.city
FROM employees e
LEFT JOIN departments d 
  ON e.department_id = d.department_id
LEFT JOIN locations l 
  ON d.location_id = l.location_id
ORDER BY Employee_Name;

如果不需要保留没有分配部门的员工,可以把LEFT JOIN替换为INNER JOIN。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 11:06:00