Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 每个用户标识对不同表中的字段求和_Php_Mysql_Sum - Fatal编程技术网

Php 每个用户标识对不同表中的字段求和

Php 每个用户标识对不同表中的字段求和,php,mysql,sum,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 我必须找到一个用户选择的计划的总成本 例如用

需要你的帮助。 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
我必须找到一个用户选择的计划的总成本 例如用户id=2必须支付400

我已经有了下面的代码,但这一代码在上面的示例中添加了数据库中所有计划的价格total cost=600 我做错了什么(


您必须在查询中指定
用户id
,如:

$user_id = 2; // or get it from $_GET, $_POST...    
$sql = "select SUM(Plan.Cost) as ANSWER
FROM Plan, Users 
WHERE Users.Plan = Plan.Plan AND Users.user_id = $user_id";

您可能希望在查询中使用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个查询中获取结果,并使数据库完成所有工作,而不是在函数等中循环数据

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;