我的数据库中有以下表格:

names:
id |   name   |
---|----------|
 1 |   Mark   |
 2 |   George |
 3 |   Liza   |
 4 |   Tai    |

evaluation
name_id |   score  |
--------|----------|
 1      |    30    |
 1      |    100   |
 2      |    20    |
 3      |    40    |
 3      |    50    |
 4      |    40    |
 4      |    50    |

bonuses
name_id |   bonus  |
--------|----------|
 1      |    5     |
 1      |    1     |
 1      |    60    |
 2      |    2     |
 2      |    8     |
 4      |    12    |
 4      |    50    |

当你看到每个名字有一个或两个评价,和许多(或没有)奖金。
我需要mysql查询来获得最佳的evaluation.score,并将它与同一个人的所有奖金相加,然后根据总数排序。
我试过了以下几点,但似乎遗漏了一些东西:
SELECT
    bonuses.name_id,
    SUM(bonuses.bonus + evaluation.score) Total
From bonuses, evaluation
WHERE bonuses.name_id = evaluation.name_id
group by names.id
order by Total

请帮助我在我的问题中提到这个问题
谢谢

最佳答案

试试这个:

SELECT bonuses.name_id, SUM(bonuses.bonus + evaluation.score) Total
FROM names, bonuses, evaluation
WHERE bonuses.name_id = evaluation.name_id
GROUP BY names.id
ORDER BY Total

您的from语句中缺少表names

关于php - MYSQL过滤表在两个其他表中的结果总和,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14307063/

10-10 11:58