2016-02-13 60 views
0

我已经做了一个像发票的软件。现在我想显示股票的具体结果。例如每次购买和出售很多次的产品(总购买总销售额=股票)。我使用下面的代码时,我使用一个表和测试总和功能的出售或再见它的工作,但多表不工作?mysql_fetch_array不显示结果当我在php中使用连接表

buy: 
id name  detail pquantity unitprice 
1 Laptop Samsung  3   $150 
2 Keyboard Perfect  6   $5 
3 Monitor dell  2   $60 
4 Laptop Samsung  2   $150 

sell 
id name  detail iquantity unitprice 
1 Laptop Samsung  1   $180 
2 Keyboard Perfect  1   $6 
3 Laptop Samsung  2   $170 


//mysql query 
$result= mysql_query("SELECT pname,pdetails, SUM(pquantity) - SUM(iquantity) AS stock FROM 
buy INNER JOIN sell GROUP BY pname,pdetails"); 

//for display 
while ($row=mysql_fetch_array($result)){ 
$itemname=$row['pname']; 
$details=$row['pdetails']; 
$pquantity=$row['pquantity']; 
$iquantity =$row['iquantity']; 
$cstock =$row['stock']; 
echo "<tr>"; 

echo "<td>$itemname</td>"; 
echo "<td>$details</td>"; 
echo "<td>$pquantity</td>"; 
echo "<td>$iquantity</td>"; 
echo "<td>$cstock</td>"; 
echo "</tr>"; 

} 
+0

可能重复[Group by not working with 2 fields sum](http://stackoverflow.com/questions/35299472/group-by-not-working-with-2-fields-总和) – Shadow

回答

0

inner join你需要指定的内部条件从主表和其他表之间不匹配行。在你的情况下:

SELECT pname, pdetails, SUM(pquantity) - SUM(iquantity) AS stock FROM 
    buy b INNER JOIN sell s on s.id = b.id GROUP BY pname, pdetails; 
+0

不会,这会产生不正确的结果。 – Shadow