如何在MYSQL中不使用UNION或UNION ALL的情况下堆叠表

时间:2018-10-16 06:33:08

标签: mysql

给一个拥有3个项目的公司,其中员工可以为一个或多个项目做出贡献。公司维护3个表,每个项目一个表,在其中记录该项目在给定日期的Employee_ID和Work_Hours。编写返回每位员工total_work_hours的SQL

(输出-Emp_ID |项目| Total_work_hours),而无需使用UNIONUNION ALL

局限性:我需要使用MySQL中的解决方案,因此FULL Join是不可能的,而且我的MYSQL版本不支持窗口函数。

表结构如下:

Table Name: Project A, Columns:

EMP_ID, Work hours


Table Name: Project B, Columns:

EMP_ID, Work hours



Table Name: Project C, Columns:

EMP_ID, Work hours

更新:

抱歉,到处都是这个。这是我第一次在SO上提问。

我的预期输出还是2种类型:

  1. 每个员工在项目中的总工作时间(EMP_ID | total_hours

  2. 每个员工的工作时间对项目的贡献(EMP_ID | Project_name | total_hours

使用UNION ALL我可以回答1个简单的问题

SELECT emp_ID, SUM(work_hours)   
FROM   
(   
    SELECT * FROM projecta   
    UNION ALL   
    SELECT * FROM projectb   
    UNION ALL 
    SELECT * FROM projectc   
) abc   
GROUP BY emp_id   

1 个答案:

答案 0 :(得分:0)

您应该知道如何在mysql中使用'union,union-all'。

也许这篇文章对您有所帮助。

  

http://www.solutionscan.org/15789-sql