每个userID从不同表中求和字段

时间:2017-03-25 20:38:10

标签: php mysql sum

需要你的帮助。 php,mysql

我有以下项目。

我有两张桌子

**table 1**

user_id    Plan
1           5
1           7  
2           5
2           9
3           7
1           9


**table 2**
Plan        Price
5           100
7           200
9           300

我必须找到一个用户选择的计划总费用 例如user_id = 2必须支付400

我已经有以下代码,但是这个代码在上面的示例总成本= 600中添加了数据库中所有计划的价格 我究竟做错了什么? :(

$totalcost = NULL;

$sql = "select SUM(Plan.Cost) as ANSWER FROM Plan";
        $result = mysql_query($sql, $link) or die(mysql_error());
        $totalcost = mysql_fetch_row($result);


          $sql = "select * FROM Plan";
        $result = mysql_query($sql, $link) or die(mysql_error());
        $rows = mysql_num_rows($result);

        $Plan = array();

        if (is_resource($result)) {
                 while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
                    $Plan[] = $row;
                }
        }

2 个答案:

答案 0 :(得分:0)

您必须在查询中指定ownerid (in venue table),例如:

user_id

答案 1 :(得分:0)

你可能想在查询中使用LEFT JOIN,所以你可以做这样的事情:

SELECT table1.user_id, table1.plan, SUM(table2.cost) FROM table1 LEFT JOIN table2 ON table1.plan=table2.plan WHERE table1.user_id = $user_id;

通过这种方式,您可以在1个查询中获取结果,并使数据库完成所有工作,而不是在函数等中循环数据。

SQL left join tutorial