2 votes

Comment obtenir la liste des utilisateurs absents dans mysql ?

J'ai les tableaux suivants

employees
-----------------------
empId  Name   MobileNumber
1      Name1  12345
2      Name2  123456
3      Name3  1234567
4      Name4  12345678

attendance
-------------------------------------------
Id    MobileNumber    Type    attendance_datetime
1     12345           IN      2017-05-31 10:04:42
2     123456          IN      2017-05-31 10:05:29
3     1234567         IN      2017-05-31 10:06:15
4     12345           OUT     2017-05-31 18:05:15
5     123456          OUT     2017-05-31 18:10:15
6     1234567         OUT     2017-05-31 18:15:15

Je souhaite obtenir la liste des utilisateurs absents à une date donnée. Comment faire ?

J'ai essayé la requête ci-dessous mais je n'ai pas obtenu de résultat.

select * from employees e,attendance a where e.MobileNumber = a.MobileNumber AND DATE(a.attendance_datetime) =  str_to_date('31-05-2017', '%d-%m-%Y')

2voto

Abu Lamar Points 38

Vous devez utiliser la jointure externe gauche :

SELECT * FROM employees e
LEFT JOIN attendance ON employees.MobileNumber = attendance.MobileNumber
AND DATE(attendance_datetime) = '2017-05-31'
WHERE attendance.Id IS NULL

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X