具有两个相关表的表的总和

时间:2014-01-15 20:43:23

标签: mysql sql

我在这里(我确定是)简单的问题我无法弄清楚如何解决。

我有这个架构:

schema

有了这些数据:

person table

fruit table

cookie table

我的预期结果是:

对于“JOHN NASH”:

PERSON_NAME | TOTAL_FRUIT | TOTAL COOKIE
----------------------------------------
JOHN NASH   |       10    |     38  

对于“OSCAR WILDE”:

PERSON_NAME | TOTAL_FRUIT | TOTAL COOKIE
----------------------------------------
OSCAR WILDE |       28    |      0

提前致谢。

2 个答案:

答案 0 :(得分:1)

SELECT name, IFNULL(f.total, 0) AS total_fruit, IFNULL(c.total, 0) AS total_cookie
FROM person AS p
LEFT JOIN (SELECT person_idperson, SUM(cost) AS total
           FROM fruit
           GROUP BY person_idperson) AS f
ON p.idperson = f.person_idperson
LEFT JOIN (SELECT person_idperson, SUM(cost) AS total
           FROM cookie
           GROUP BY person_idperson) AS c
ON p.idperson = c.person_idperson

答案 1 :(得分:-1)

SELECT p.name AS PERSON_NAME, 
    IFNULL(SUM(f.cost),0) AS TOTAL_FRUIT, 
    IFNULL(SUM(c.cost),0) AS TOTAL_COOKIE
FROM person AS p
LEFT JOIN fruit as f
    ON p.idperson = f.person_idperson
LEFT JOIN cookie as c
    ON p.idperson = c.person_idperson
GROUP BY p.idperson