Выбор поля из другой таблицы без внешнего ключа из основной таблицы - PullRequest
0 голосов
/ 04 сентября 2018

У меня есть 3 таблицы из базы данных Microsoft Access, которые я хочу запросить. Но мне удается запросить только 2 таблицы, что проще, потому что в этих 2 таблицах есть связь между первичным ключом и внешним ключом.

Таблица tblEmployee

Employee ID | Employee Name | Department ID |
     1      |       A       |      AS1      |
     2      |       B       |      CEO      |
     3      |       C       |      AS2      |

Таблица столов

Department ID |  Department   |
     CEO      |    Chairman   |
     AS1      |   Assistant1  |
     AS2      |   Assistant2  |

Таблица tblPAyTransTemp

Employee ID | Payment |
     1      |   50.00 |
     2      |   80.00 | 
     3      |   30.00 |

Вот мой код:

$sql = "SELECT `Employee ID` AS `No`,
        (
            SELECT `Employee Name` 
            FROM `tblEmployee` 
            WHERE `Employee ID` = tblPAyTransTemp.`Employee ID`
        ) AS `Name`,
        (
            SELECT `Department` 
            FROM `tblDepartment`
            WHERE `Department ID` = tblEmployee.`Department ID`
        ) AS `Department`,
        `Payment`
    FROM `tblPAyTransTemp`    
    WHERE `Month` ='$month' AND `Year` ='$year'
    ORDER BY `Employee ID` ASC";

if ($result = $connectdb->query($sql)) 
{
   $totalPayment = 0;

   echo '<table>'            
            . '<th>No</th>'
            . '<th>Name</th>'
            . '<th>Department</th>'
            . '<th>Payment</th>'
        . '</tr>';

   foreach ($result->fetchAll(PDO::FETCH_ASSOC) as $row) 
   {
      echo '<tr>'
      . '<td>' . $row["No"] . '</td>'
      . '<td>' . substr($row["Name"], 0, 50) . '</td>'               
      . '<td>' . $row["Department"] . '</td>'
      . '<td>' . number_format((float)$row["Payment"], 2, '.', '') . '</td>'
      . '</tr>';

      $totalPayment += $row["Payment"];
   }

   echo '<tr>'
   . '<td colspan="3">Total</td>'
   . '<td>' . number_format((float)$totalPayment, 2, '.', '') . '</td>'
   . '</tr>'
   . '</table>';
}

Как отобразить вот так?

  No   |  Name | Department  | Payment |
   2   |   B   |   Chairman  |  80.00  |
           Assistant         |         |<---subheader for each department 
   1   |   A   |  Assistant1 |  50.00  |< list of subheader
   3   |   C   |  Assistant2 |  30.00  |< list of subheader
            Total            | 160.00  |
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...