LEFT JOIN Не работает должным образом

Мне нужна помощь с LEFT Join

первый дб «фпо»

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

** первый дБ "fpo" **
ID ---- empnum ----- сумма ----- Дата ------- 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

** второй БД "пользователи" **
ID ---- сумма ----- EmpID ---- имя пользователя ---- пароль
1 ----- ----- 700,00 854245 --- админ ------- абв123
2 ----- ----- 500,00 123987 --- админ ------- абв123
3 ----- ----- 200,00 548798 --- админ ------- абв123

То, что я пытаюсь сделать, это sum(amount) От fpo, где empnum (примечание: от fpo) = empnum (примечание: от пользователей)
затем отобразите суммированную сумму с помощью empnumber и суммы из таблицы users.

Мне нужно сделать это для всех пользователей в БД. У меня там сейчас около 150 человек …..

Спасибо за ваше время и помощь!!! Наверное, простая проблема 🙁

2

Решение

Вы не повторяете сумму, $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,

3

Другие решения

Кажется, это работает для меня. Спасибо!

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

По вопросам рекламы [email protected]