使用php检索mysql中两个不同的表列字段的总和

时间:2014-09-26 12:23:55

标签: php mysql sql

嘿伙计们我坚持这个问题

我有两个不同的表,列名相同,但主键ID

的值不同

表1:q1

id ability_to_delegate communication confidence commitment

1           0                0            1          0          

2           0                0            0          0

3           0                0            0          0

4           1                0            1          0

表2:q2

id ability_to_delegate communication confidence commitment

1           0                0            2          1          

2           0                0            1          1

3           0                0            0          0

4           0                0            1          1

现在我想要的是将具有相同字段名但不同ID的两个不同表的值相加。

例如,我希望表q1中的置信区域的值为id = 4,即表q2的置信区域的值为id = 1,即2,即3。

我尝试使用union但没有得到rseult

$mresult=mysqli_query($con,"select sum(sm) from 

(select confidence sm from q1 where id='$id' 

union 

select confidence sm from q2 where id='$id') ss");

while ($row1 = mysqli_fetch_assoc($mresult)){
echo "Sum ". $row1['ss'];
}

我收到警告

Warning: mysql_fetch_assoc() expects parameter 1 to be resource, object given in .... on line 89

请帮帮我

1 个答案:

答案 0 :(得分:3)

完成您要找的内容的查询是

SELECT `q1`.`confidence` + `q2`.`confidence` AS `TotalConfidence`
FROM `q1`, `q2`
WHERE `q1`.`id` = 4
AND `q2`.`id` = 1

您可以将其插入PHP并在适当的位置替换变量。

$mresult=mysqli_query($con,"SELECT `q1`.`confidence` + `q2`.`confidence` AS `TotalConfidence` FROM `q1`, `q2`WHERE `q1`.`id` = '{$q1id}' AND `q2`.`id` = '{$q2id}'");

while ($row1 = mysqli_fetch_assoc($mresult)){
    echo "Sum ". $row1['TotalConfidence'];
}