Mysql 添加两个子查询以生成第三列

Mysql 添加两个子查询以生成第三列,mysql,sql,subquery,Mysql,Sql,Subquery,我需要从两个子查询中添加两个值,并将其添加到第三列。 我可以编写两次完整的子查询来生成sum,但有更好的方法吗 SELECT d.id, CONCAT(d.disease, '( ', d.disease_nepali, ' ) ') AS DISEASE, IFNULL((SELECT patients.D_O_M + patients.D_O_F FROM

我需要从两个子查询中添加两个值,并将其添加到第三列。 我可以编写两次完整的子查询来生成sum,但有更好的方法吗

SELECT 
    d.id,
    CONCAT(d.disease, '( ', d.disease_nepali, ' ) ') AS DISEASE,
    IFNULL((SELECT 
                    patients.D_O_M + patients.D_O_F
                FROM
                    patients
                WHERE
                    clinic = 22
                        AND patients.disease = p.disease),
            0) AS 'district1',
    IFNULL((SELECT 
                    patients.D_O_M + patients.D_O_F
                FROM
                    patients
                WHERE
                    clinic = 21 AND disease = p.disease),
            0) AS 'district2'
FROM
    diseases d
        LEFT JOIN
    patients p ON (d.id = p.disease AND p.district = 9
        AND p.status = 1
        AND p.report_date LIKE '2014-03%')
GROUP BY disease

您可以使用子选择

SELECT t.*,t.district1 + t.district2  `new_col`
FROM (
SELECT d.id, CONCAT(d.disease, '( ' ,d.disease_nepali, ' ) ') AS DISEASE, 
IFNULL((SELECT patients.D_O_M+patients.D_O_F FROM patients WHERE clinic = 22 AND     patients.disease = p.disease),0) AS `district1` , 
IFNULL((SELECT patients.D_O_M+patients.D_O_F FROM patients WHERE clinic = 21 AND disease = p.disease),0) AS `district2`
 FROM diseases d
LEFT JOIN patients p ON 
(d.id = p.disease AND p.district = 9 AND p.status = 1 AND p.report_date LIKE '2014-03%') 
GROUP BY disease
) t