Một cách khác để làm điều đó (chưa được thử nghiệm, vì vậy hãy cho tôi biết nếu nó bị nổ):
SELECT emp.id, IF(emp.statue=1, c.sumCome, 0) AS sumCome, l.sumLeave
FROM emp
LEFT JOIN (SELECT uid, SUM(money) AS sumCome
FROM come
GROUP BY uid
) c ON emp.id = c.uid
LEFT JOIN (SELECT uid, SUM(money) AS sumLeave
FROM leave
GROUP BY uid
) l ON emp.id = l.uid
Tôi không biết cái nào sẽ nhanh hơn so với của Kevin. Bạn có thể muốn explain
cả hai và xem.