如何划分2个连接的SQL列?

时间:2013-05-09 23:21:36

标签: php sql join rating divide

所以我试图为“创建你自己的汉堡”应用程序创建一个高分表。

我的SQL查询:

SELECT Save_Burger.Name, Rating.TotalScore, Rating.TotalVotes FROM Save_Burger INNER JOIN Rating ON Save_Burger.RatingID=Rating.RatingID ORDER BY Rating.TotalScore DESC

返回:

|---------------------------------------|
|  Name   |  TotalScore  |  TotalVotes  |
|Burger1  |     11       |      3       |
|Burger2  |      6       |      2       |
|Burger3  |      5       |      5       |
|Burger4  |      2       |      1       |
|Burger5  |      0       |      0       |
|---------------------------------------|

然后我使用PHP来划分TotalScore和TotalVotes:

if (($row["TotalScore"] != 0) || ($row["TotalVotes"] != 0)) {
            $TotalRatingScore = $row["TotalScore"] / $row["TotalVotes"];
            echo substr($TotalRatingScore, 0, 3);
        }
        else {
            echo 0;

代码运行正常。问题是它首先不会回显最高分值。因此,即使Burger3的平均评分为1,它仍然是顶级的Burger4,平均评分为2。

最佳选择是什么?我应该从SQL查询中划分还是有PHP修复?如果是这样,怎么样?

提前致谢,

托马斯

1 个答案:

答案 0 :(得分:0)

您需要按比例订购:

ORDER BY Rating.TotalScore/Rating.TotalVotes DESC