@koshikos

Как выбрать всех работников, которые не принимают участие в данном тренинге?

То есть необходимо вывести всех работников, еще не принимающих участие в тренинге. Имеется 3 таблицы: training (поля id_training, name, description...), employee (employeeID, FirstName...), employee_to_training (смежная таблица - id_emp_training, id_training, id_employee).

В этом коде есть переменная $get_id. Она означает id выбранного тренинга.

Помогите составить правильный запрос.

<div class="bs-callout bs-callout-danger">
        <h4>Все участники, которые ещё не принимают участие в этом тренинге</h4>
        <table class="table table-striped table-responsive ">
          <thead>
            <tr><th>ФИО</th>
            <th>Должность</th>
          </tr></thead>
          <tbody>
<?php $emp_query = mysql_query(
"SELECT e.* 
FROM employee e 
LEFT JOIN employee_to_training et ON (e.employeeID AND et.id_training ='{$get_id}') 
WHERE et.id_emp_training IS NULL");
                        while($row=mysql_fetch_array($emp_query)){ $id=$row['employeeID']; ?>
            <tr>
              <td><a href="" class=""><?php echo $row['LastName'] . ' ' . $row['FirstName'] . ' ' . $row['MiddleName']; ?></a></td>
              <td><?php echo $row['pos']; ?></td>
            </tr>
<?php } ?>
          </tbody>
        </table>
      </div>
  • Вопрос задан
  • 178 просмотров
Решения вопроса 1
@kazmiruk
SELECT * FROM employee WHERE employeeID NOT IN (SELECT id_employee FROM employee_to_training WHERE id_training = < id >)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы