php - LEFT JOIN 无法正常工作

标签 php mysql sql join left-join

我需要一些关于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) From fpo where empnum (note:from fpo) = empnum (note:from users) 然后用 empnumber 和用户表中的金额回显总金额。

我需要为用户数据库中的每个人执行此操作。我现在大约有 150 人......

感谢您的宝贵时间和帮助!可能是一个简单的问题:(

最佳答案

您没有回显总金额,$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 资格与表名称,因为两个表都有一个名为 amount 的列。您还有user.empnum在你的ON子句,但该列是 users.empid .

您应该选择 users 中的列并按其分组,不是fpo ,因为LEFT JOIN可以返回 fpo 中的列所在的行是NULL如果 users.empid 没有匹配项.

关于php - LEFT JOIN 无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26172886/

相关文章:

javascript - 如果元素为空,JQuery 表单验证和类会更改

java - 如何使用 java 在 sql 中使用 ENUM 类型

mysql - 如何通过数据透视表选择具有一定关系的行?

mysql - 搜索名称数据库

python - 如何使用 python 从树莓派将行插入到 Oracle SQL 数据库中?

MySQL 左连接限制为一行

MySQL SQL命令从一个具有三个相同列的表查询到另一个表

PHP/HTML : activate users through admin page using radio button

php - 如何去除 PHP 中的特殊引号字符?

php - 错误 : No application encryption key has been specified. 但它存在