我需要LEFT Join
第一个数据库是“fpo”
ID ---- ----- empnum量--- ----日期ponum
第二个数据库是“用户”
ID ---- -----量---- EMPID用户名密码----
我需要为每个用户计算fpo中的“金额”,并将总金额与用户的金额进行比较。
这是我现在的代码不起作用。
$result = mysqli_query($con,
"select fpo.amount , fpo.empnum , user.amount , user.fpo SUM(amount)
FROM LEFT JOIN fpo ON fpo.empnum = users.empnum GROUP BY empnum");
while($row = mysqli_fetch_array($result)) {
echo $row['empnum'];
echo "<br>";
echo $row['amount'];
}
由于某种原因,这不起作用....我做错了什么我从未使用过JOIn命令。
以下是mysql中的数据
**first db is "fpo"** id----empnum-----amount-----date-------ponum 1-----854245-----5.00------9/7/14------12345 2-----123987-----8.00------9/7/14------12345 3-----123987-----5.00------9/7/14------12345 4-----854245-----15.00-----9/7/14------12345 5-----548798-----10.00-----9/7/14------12345 6-----854245-----30.00-----9/7/14------12345 **second db is "users"** id----amount-----empid----username----password 1-----700.00-----854245---admin-------abc123 2-----500.00-----123987---admin-------abc123 3-----200.00-----548798---admin-------abc123
我想做的是sum(amount)
来自fpo,其中empnum(注意:来自fpo)= empnum(注意:来自用户)
然后用empnumber和users表中的金额回显总和金额。
我需要为用户db中的每个人执行此操作。我现在在那里约有150人......
感谢您的时间和帮助!可能是一个简单的问题:(
答案 0 :(得分:3)
您没有回显总和金额,$row['amount']
是您希望$row['SUM(amount)']
的单行金额。我建议您给它一个别名,以便更容易访问:
$result = mysqli_query($con,"select f.amount , u.empid , u.amount ,
u.fpo, SUM(u.amount) AS total
FROM users AS u
LEFT JOIN fpo AS f ON f.empnum = u.empid
GROUP BY u.empid") or die(mysqli_error($con));
while($row = mysqli_fetch_array($result)) {
echo $row['empnum'];
echo "<br>";
echo $row['total'];
}
您还错过了SUM(amount)
之前的逗号,FROM
之后的表名,并且您需要使用表名限定amount
,因为这两个表都有一个名为{{1的列}}。您的amount
子句中也有user.empnum
,但该列为ON
。
您应该按users.empid
而不是users
的列进行选择和分组,因为fpo
可以返回LEFT JOIN
中的列为fpo
的行NULL
没有匹配。
答案 1 :(得分:0)
这似乎对我有用。谢谢!
result = mysqli_query($con,"select f.amount , u.empnum , u.amount ,
SUM(f.amount) AS total
FROM users AS u
LEFT JOIN fpo AS f ON f.empnum = u.empnum
GROUP BY u.empnum")
or die(mysqli_error($con));
while($row = mysqli_fetch_array($result)) {
echo "Emp".$row['empnum']."----".$row['total']."----Amount----".$row['amount']."<br>";