У меня есть таблица для сотрудников и другая таблица с Обучение. Учебная таблица содержит различные учебные классы, которые сотрудники завершены. У нас есть обязательная профессиональная подготовка по вопросам безопасности, поэтому каждый сотрудник должен пройти этот учебный класс. У меня возникли проблемы с запуском запроса, который вернет всех сотрудников, которые либо перешли на завершение обучения, либо нет.
Пример Таблица сотрудников
╔════╦══════╗
║ ID ║ NAME ║
╠════╬══════╣
║ 1 ║ Bob ║
║ 2 ║ Tom ║
║ 3 ║ John ║
╚════╩══════╩
Пример Таблица тренировок
╔════╦══════════════╦════════════════════╗
║ ID ║ DEPARTMENT_ID║ CLASS ║
╠════╬══════════════╬════════════════════╣
║ 1 ║ 1 ║ Security Awareness ║
║ 2 ║ 1 ║ Workplace Safety ║
║ 3 ║ 2 ║ Security Awareness ║
╚════╩══════════════╩════════════════════╝
Конечный результат
╔════╦══════╦════════════════════╗
║ ID ║ NAME ║ CLASS ║
╠════╬══════╬════════════════════╣
║ 1 ║ Bob ║ Security Awareness ║
║ 2 ║ Tom ║ Security Awareness ║
║ 3 ║ John ║ (null) ║
╚════╩══════╩════════════════════╝
Запрос, который я использую,
SELECT employee.id, employee.name, training.class
FROM employee
JOIN training ON employee.id = training.department_id
WHERE training.class LIKE '%SECURITY%'
ORDER BY employee_id
Сотрудник, упустивший класс "Осознание безопасности", просто не появляется и проваливается через трещины.