如何通过一个SQL查询获得多个计数和求和?

时间:2016-07-19 19:54:31

标签: mysql mysqli

我有3-5个mysql查询:

SELECT COUNT(*) FROM aso_repairs WHERE repairs_date_end = '0000-00-00 00:00:00' AND repairs_supply_repair_users_id = ''
SELECT COUNT(*) FROM aso_repairs WHERE repairs_date_end != '0000-00-00 00:00:00' AND repairs_supply_repair_users_id != '0'
SELECT repairs_id FROM aso_repairs ORDER BY repairs_id DESC

如何在一个查询中完成此操作?

像:

 (FIRST COUNT) AS count1, (SECOND COUNT) AS count2, (LAST QUERY) AS count3

1 个答案:

答案 0 :(得分:0)

使用union并使用3列进行每个选择:

select sum(count1),sum(count2),sum(count3)
from 
(
SELECT COUNT(*) as 'count1',0 as 'count2' ,0 as 'count3' FROM aso_repairs WHERE repairs_date_end = '0000-00-00 00:00:00' AND repairs_supply_repair_users_id = ''
union
SELECT 0 as 'count1',COUNT(*) as 'count2',0 as 'count3' FROM aso_repairs WHERE repairs_date_end != '0000-00-00 00:00:00' AND repairs_supply_repair_users_id != '0'
union
SELECT 0 as 'count1' ,0 as 'count2',repairs_id as 'count3' FROM aso_repairs ORDER BY repairs_id DESC
)RS_count