我有两个单独运行良好的不同查询。第一个给了我有用的结果列 TOTALI
和第二个查询列 RIMBORSATI
。因此,我需要将第一个查询与第二个查询合并,并使第一个查询的 HAVING 子句是类似 HAVING totali-rimborsati < professionisti.limite
的操作。 .
非常感谢你。
第一个查询:
SELECT professionisti.*,COUNT(contatti_acquistati_addebito.email) AS totali
FROM professionisti
LEFT JOIN contatti_acquistati_addebito ON
professionisti.email = contatti_acquistati_addebito.email
AND contatti_acquistati_addebito.DATA
BETWEEN ('2014-05-01') AND ('2014-05-31')
WHERE professionisti.categoria LIKE '%0540%' AND
professionisti.province LIKE '%MI%'
AND professionisti.addebito='1'
GROUP BY professionisti.email
HAVING totali < professionisti.limite
ORDER BY totali ASC LIMIT 4
第二个查询:
SELECT professionisti.*,COUNT(contatti_rimborsi.email) AS rimborsati
FROM professionisti
LEFT JOIN contatti_rimborsi ON professionisti.email = contatti_rimborsi.email AND
contatti_rimborsi.DATA BETWEEN ('2014-05-01') AND ('2014-05-31')
WHERE professionisti.categoria LIKE '%0540%'
AND professionisti.province LIKE '%MI%'
AND professionisti.addebito='1'
GROUP BY professionisti.email
ORDER BY totali ASC LIMIT 4
最佳答案
select sq1.*,sq2.rimborsati
from
(SELECT professionisti.email as email, professionisti.categoria as categoria,professionisti.province as province,professionisti.addebito as addebito, COUNT(contatti_acquistati_addebito.email) AS totali
FROM professionisti
LEFT JOIN contatti_acquistati_addebito ON
professionisti.email = contatti_acquistati_addebito.email
AND contatti_acquistati_addebito.DATA
BETWEEN ('2014-05-01') AND ('2014-05-31')
WHERE professionisti.categoria LIKE '%0540%' AND
professionisti.province LIKE '%MI%'
AND professionisti.addebito='1'
GROUP BY professionisti.email
HAVING totali < professionisti.limite
ORDER BY totali ASC LIMIT 4) sq1,
(SELECT professionisti.email as email, professionisti.categoria as categoria,professionisti.province as province,professionisti.addebito as addebito, COUNT(contatti_rimborsi.email) AS rimborsati
FROM professionisti
LEFT JOIN contatti_rimborsi ON professionisti.email = contatti_rimborsi.email AND
contatti_rimborsi.DATA BETWEEN ('2014-05-01') AND ('2014-05-31')
WHERE professionisti.categoria LIKE '%0540%'
AND professionisti.province LIKE '%MI%'
AND professionisti.addebito='1'
GROUP BY professionisti.email
ORDER BY totali ASC LIMIT 4) sq2
where sq1.email=sq2.email and totali <rimborsati
关于具有两种不同连接和计数的 MYSQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24146352/