Ho una tabella per i dipendenti e un'altra tabella con Formazione. La tabella di allenamento contiene vari corsi di formazione completati dai dipendenti di . Abbiamo un addestramento obbligatorio sulla consapevolezza della sicurezza, quindi ogni dipendente deve completare questo corso di formazione. Sto riscontrando problemi nell'esecuzione di una query che restituirà TUTTI i dipendenti elencati come completanti la formazione o meno. risultatoInterrogazione SQL uno a molti
Esempio dipendenti tavolo
╔════╦══════╗
║ ID ║ NAME ║
╠════╬══════╣
║ 1 ║ Bob ║
║ 2 ║ Tom ║
║ 3 ║ John ║
╚════╩══════╩
Esempio Formazione
╔════╦══════════════╦════════════════════╗
║ ID ║ DEPARTMENT_ID║ CLASS ║
╠════╬══════════════╬════════════════════╣
║ 1 ║ 1 ║ Security Awareness ║
║ 2 ║ 1 ║ Workplace Safety ║
║ 3 ║ 2 ║ Security Awareness ║
╚════╩══════════════╩════════════════════╝
target
╔════╦══════╦════════════════════╗
║ ID ║ NAME ║ CLASS ║
╠════╬══════╬════════════════════╣
║ 1 ║ Bob ║ Security Awareness ║
║ 2 ║ Tom ║ Security Awareness ║
║ 3 ║ John ║ (null) ║
╚════╩══════╩════════════════════╝
La query che sto usando è
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
Il dipendente che manca la lezione "Awareness Security" non appare e cade attraverso le fessure.
È department_id pari a employee.id? – Maciej