mysql 合并查询的两种结果_Mysql 合并两个查询结果 结果被覆盖

在做一个综合统计功能时使用了union all来进行合并查询结果 但是查询得到的结果集发现结果被覆盖了

sql:

SELECT

studyCenterName,

grade,

weiji,

done,

zong

FROM

(

SELECT

e5. NAME AS studyCenterName,

e4.grade AS grade,

count(e1.id) AS weiji,

0 AS done,

0 AS zong

FROM

ex_examination e1

LEFT JOIN ex_stage e2 ON e1.stage_id = e2.id

LEFT JOIN ex_student_course e3 ON e1.student_course_id = e3.id

LEFT JOIN ex_student e4 ON e3.student_id = e4.id

LEFT JOIN ex_study_center e5 ON e4.study_center_id = e5.id

WHERE

e1. STATUS = 1

GROUP BY

e5. NAME,

e4.grade

UNION ALL

SELECT

e5. NAME AS studyCenterName,

e4.grade AS grade,

0 AS weiji,

count(e1.id) AS done,

0 AS zong

FROM

ex_examination e1

LEFT JOIN ex_stage e2 ON e1.stage_id = e2.id

LEFT JOIN ex_student_course e3 ON e1.student_course_id = e3.id

LEFT JOIN ex_student e4 ON e3.student_id = e4.id

LEFT JOIN ex_study_center e5 ON e4.study_center_id = e5.id

WHERE

e1.end_exam_date < NOW()

AND e1.is_simulate = 0

GROUP BY

e5. NAME,

e4.grade

UNION ALL

SELECT

e5. NAME AS studyCenterName,

e4.grade AS grade,

0 AS weiji,

0 AS done,

count(e1.id) AS zong

FROM

ex_examination e1

LEFT JOIN ex_stage e2 ON e1.stage_id = e2.id

LEFT JOIN ex_student_course e3 ON e1.student_course_id = e3.id

LEFT JOIN ex_student e4 ON e3.student_id = e4.id

LEFT JOIN ex_study_center e5 ON e4.study_center_id = e5.id

GROUP BY

e5. NAME,

e4.grade

) a

GROUP BY

studyCenterName,

grade

ORDER BY

studyCenterName

查询结果:

8d115afb0aae579115de6113f01ad4a4.png

把union连接的三个sql单独执行的结果集:

ccdeb71e694a03b2fa88f12662266b44.png

f24fe58c1808b476db7a86a07a5f59aa.png

5e8f401deb00c14bdd754ed0f914198c.png

请问有什么办法解决这类问题吗

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值