Php sql中对多个表的算术运算

Php sql中对多个表的算术运算,php,Php,我正在使用PHP开发一个SMS项目,所以我有4个表,test、test2、exam和total 我正在寻找一个查询或一种方法来对前三个表进行算术运算并存储它的总数,在搜索后,我没有找到,我得出以下代码: $sql1 = "SELECT * FROM f_test"; $result1 = $connect->query($sql1); $row1 =mysqli_fetch_assoc($result1)

我正在使用PHP开发一个SMS项目,所以我有4个表,test、test2、exam和total 我正在寻找一个查询或一种方法来对前三个表进行算术运算并存储它的总数,在搜索后,我没有找到,我得出以下代码:

      $sql1 = "SELECT * FROM f_test";
                $result1 = $connect->query($sql1);
                $row1 =mysqli_fetch_assoc($result1)

                $sql2 = "SELECT * FROM exam";
                $result2 = $connect->query($sql2);
                $row2 =mysqli_fetch_assoc($result2);

                $sql3 = "SELECT * FROM exam";
                $result3 = $connect->query($sql3);
                $row3 =mysqli_fetch_assoc($result3);


                 $var1= $row1['english'];
                 $var2 = $row2['english'];
                  $var3 = $row3['english'];


                 $var4 = ($var1 + $var2 + $var3);

                 echo "<br>" . $var4;
                }
                }
           }
$sql1=“从f_测试中选择*”;
$result1=$connect->query($sql1);
$row1=mysqli\u fetch\u assoc($result1)
$sql2=“从考试中选择*”;
$result2=$connect->query($sql2);
$row2=mysqli\u fetch\u assoc($result2);
$sql3=“从考试中选择*”;
$result3=$connect->query($sql3);
$row3=mysqli\u fetch\u assoc($result3);
$var1=$row1['english'];
$var2=$row2['english'];
$var3=$row3['english'];
$var4=($var1+$var2+$var3);
回声“
”$var4; } } }
我尝试了一个while循环,但它没有达到我想要的效果。有什么建议吗

    $sql1 = "SELECT * FROM f_test";
                $result1 = $connect->query($sql1);
                while ($row1 =mysqli_fetch_assoc($result1)){

                $sql2 = "SELECT * FROM exam";
                $result2 = $connect->query($sql2);
                while($row2 =mysqli_fetch_assoc($result2)){

                $sql3 = "SELECT * FROM exam";
                $result3 = $connect->query($sql3);
                while($row3 =mysqli_fetch_assoc($result3)){


                 $var1= $row1['english'];
                 $var2 = $row2['english'];
                  $var3 = $row3['english'];


                 $var4 = ($var1 + $var2 + $var3);

                 echo "<br>" . $var4;
                }
                }
            }
$sql1=“从f_测试中选择*”;
$result1=$connect->query($sql1);
而($row1=mysqli\u fetch\u assoc($result1)){
$sql2=“从考试中选择*”;
$result2=$connect->query($sql2);
而($row2=mysqli\u fetch\u assoc($result2)){
$sql3=“从考试中选择*”;
$result3=$connect->query($sql3);
而($row3=mysqli\u fetch\u assoc($result3)){
$var1=$row1['english'];
$var2=$row2['english'];
$var3=$row3['english'];
$var4=($var1+$var2+$var3);
echo“
”$var4; } } }
如果我正确理解了您的问题,您有三个关系,其中包含一些类似的数据,您需要聚合/汇总,并且需要将聚合插入第四个表中,例如
total

你在这里的做法对我来说太贵了。你可以做你想做的事情(不是以你已经在做的方式),但是你现在做的方式在资源方面过于昂贵和详尽。由于您正在寻找一个查询或方法,我可以提出以下建议

+---------+
|SUM(mark)|
+---------+
|150      |
+---------+
如果是我,我会做如下的事情

+---------+
|SUM(mark)|
+---------+
|150      |
+---------+
假设有两个表,即
test1
test2
。其定义和数据如下。这里,我再次假设您使用的是MySQL。这可以在任何DBMS中完成,但操作方法会因数据库而异

CREATE TABLE test1(
    id INT PRIMARY KEY AUTO_INCREMENT,
    mark INT NOT NULL
);

CREATE TABLE test2(
    id INT PRIMARY KEY AUTO_INCREMENT,
    mark INT NOT NULL
);

INSERT INTO test1(mark) VALUES(10);
INSERT INTO test1(mark) VALUES(20);
INSERT INTO test1(mark) VALUES(30);

INSERT INTO test2(mark) VALUES(20);
INSERT INTO test2(mark) VALUES(30);
INSERT INTO test2(mark) VALUES(40);
现在,我需要得到两个表中字段
标记
的总数(注意,字段的属性是匹配的)。我可以按如下方式运行SQL查询注意
UNION ALL
子句,它不会忽略重复项

SELECT SUM(mark) FROM (SELECT mark FROM test1 UNION ALL SELECT mark FROM test2) u;
这将为您提供如下结果

+---------+
|SUM(mark)|
+---------+
|150      |
+---------+

这样,您就可以进入一个php脚本,然后从php运行另一条
INSERT-into-total
SQL语句。这也真的没有必要。因为您可以增强上面的SQL查询,所以也可以执行插入。我让你来决定。上述MySQL 5.6工作表单中的示例可以在

中看到,您所说的
算术运算是什么意思
?你想做什么?你想要什么还不清楚百分比计算,平均值和总和。。这些不是算术运算,而是聚合运算。你为什么不把你的模式的一部分发布在一个网站上呢?然后我们可以更好地帮助你…谢谢,我可以从这里开始,你是对的,它真的是详尽无遗。