如何编写SQL查询合并Employee与Department表并添加Type列
解决方法:使用UNION ALL合并结果集
这是个很常见的跨表合并需求,核心思路就是给每个表添加一个标识类型的固定列,再把两个结果集拼接起来就行。
具体SQL语句
SELECT EmpID AS ID, EmpName AS Name, 'Employee' AS Type FROM Employee UNION ALL SELECT DeptID AS ID, DeptName AS Name, 'Department' AS Type FROM Department;
逻辑说明
- 先处理
Employee表:把EmpID重命名为统一的ID列,EmpName重命名为Name列,同时新增一个固定值为'Employee'的Type列,用来标记这行数据的来源。 - 再处理
Department表:同理,将DeptID、DeptName映射为统一列名,Type列固定为'Department'。 - 最后用
UNION ALL合并两个结果集:因为两个表的数据完全没有重复的可能,用UNION ALL比UNION效率更高——它会直接拼接结果,不会额外做去重检查。
执行这个查询后,就能得到你期望的结果:
ID Name Type E001 Jack Employee E002 Jill Employee D001 IT Department D002 HR Department
内容的提问来源于stack exchange,提问作者Ak C
相关产品推荐
相关产品推荐

