首页 > 解决方案 > Parallel 根据一个条件合并两个查询结果

问题描述

我有两个不同的查询,我想将第一个查询结果与第二个查询组合,但想添加 Overtime 列应该与第一个查询结果并行组合:第一个查询

    SELECT  count(PTPK)/2 TotalDays, PTPK, pro.Name as ProjectName FROM switch_person
                    left JOIN projects pro
                    ON pro.PK = PTPK
                    WHERE SwitchDate BETWEEN '2020-01-01' AND '2020-01-03'
                    AND PTPK <> 0 
group by ptpk

第二个查询

SELECT PTPK, Sum(vpo.Option-1) TotalDaysWithOvertime from switch_person sp
Left JOIN vote_poll vp
ON vp.AskDate = sp.SwitchDate
Left JOin vote_poll_output vpo
ON vpo.QuesNo = VPPK
AND vpo.EmpPK = EmployeeNamePK
WHERE SwitchDate Between '2020-01-01' AND '2020-01-03'
AND vpo.Output = 'true'
and Half = 2
group by PTPK

基于 PTPK 将第一个查询结果与 sceond 组合,但将 TotaldaywithOvertime 并排添加到匹配 PTPK 的第一个查询结果。

标签: mysqljoin

解决方案


加入他们共同PTPK列上的查询:

select q1.*, q2.TotalDaysWithOvertime 
from (
  <1st query here>
) q1 inner join  (
  <2nd query here>
) q2 on q2.PTPK = q1.PTPK

根据您的实际数据,您可能需要 aLEFTRIGHTjoin 而不是INNER.


推荐阅读