Tôi có bảng cho Nhân viên và một bảng khác với Đào tạo. Bảng đào tạo có các lớp đào tạo khác nhau mà các nhân viên đã hoàn thành. Chúng tôi có đào tạo nâng cao nhận thức bảo mật bắt buộc, do đó, mỗi nhân viên phải hoàn thành lớp đào tạo này. Tôi gặp sự cố khi chạy truy vấn sẽ trả về TẤT CẢ nhân viên hoặc được liệt kê hoàn thành việc đào tạo hay không.Truy vấn SQL từ một đến nhiều mối quan hệ
Ví dụ nhân viên bảng bảng
╔════╦══════╗
║ ID ║ NAME ║
╠════╬══════╣
║ 1 ║ Bob ║
║ 2 ║ Tom ║
║ 3 ║ John ║
╚════╩══════╩
Ví dụ Đào tạo
╔════╦══════════════╦════════════════════╗
║ ID ║ DEPARTMENT_ID║ CLASS ║
╠════╬══════════════╬════════════════════╣
║ 1 ║ 1 ║ Security Awareness ║
║ 2 ║ 1 ║ Workplace Safety ║
║ 3 ║ 2 ║ Security Awareness ║
╚════╩══════════════╩════════════════════╝
Target dẫn
╔════╦══════╦════════════════════╗
║ ID ║ NAME ║ CLASS ║
╠════╬══════╬════════════════════╣
║ 1 ║ Bob ║ Security Awareness ║
║ 2 ║ Tom ║ Security Awareness ║
║ 3 ║ John ║ (null) ║
╚════╩══════╩════════════════════╝
Các truy vấn mà tôi đang sử dụng là
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
Nhân viên bị thiếu lớp "Nhận thức bảo mật" chỉ không xuất hiện và rơi qua các vết nứt.
là department_id bằng employee.id? – Maciej