簡體   English   中英

左聯接工作不正常

[英]LEFT JOIN Not working properly

我需要一些有關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

我想做的是從fpo的sum(amount) ,其中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的列。 您的ON子句中也有user.empnum ,但該列是users.empid

您應該選擇並按users而不是fpo的列進行fpo ,因為如果users.empid不匹配,則LEFT JOIN可以返回fpo NULLusers.empid

這似乎為我工作。 謝謝!

    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>";

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM