Requete MySQL renvoi plusieurs entrées
Résolu
kalimbra
Messages postés
546
Statut
Membre
-
kalimbra Messages postés 546 Statut Membre -
kalimbra Messages postés 546 Statut Membre -
Bonjour,
j'ai une requete MySQL qui est sensé me renvoyer une entrée unique correspondant à mes besoins. :
SELECT DISTINCT * FROM Presence LEFT JOIN Employes ON Presence.IdCard = Employes.idCard WHERE DepartTime ='00:00:00' AND ArrivalTime <> '00:00:00'
Malheureusement , dans un cas, je me retrouve avec deux entrées . Normalement Chaque DepartTime est compensé par un arrivalTime, sinon je récupère.
Mais si j'ai deux entrées idcard identique avec deux arrivaltime différent, et sans aucun departime, je me retrouve avec deux entrées dans ma requete..
comment pourrais je modifier cette requete pour qu'il ne me donne qu'une entrée quand plusieurs remplissent la condition ?
j'ai une requete MySQL qui est sensé me renvoyer une entrée unique correspondant à mes besoins. :
SELECT DISTINCT * FROM Presence LEFT JOIN Employes ON Presence.IdCard = Employes.idCard WHERE DepartTime ='00:00:00' AND ArrivalTime <> '00:00:00'
Malheureusement , dans un cas, je me retrouve avec deux entrées . Normalement Chaque DepartTime est compensé par un arrivalTime, sinon je récupère.
Mais si j'ai deux entrées idcard identique avec deux arrivaltime différent, et sans aucun departime, je me retrouve avec deux entrées dans ma requete..
comment pourrais je modifier cette requete pour qu'il ne me donne qu'une entrée quand plusieurs remplissent la condition ?
Configuration: Windows XP Firefox 3.0.1
6 réponses
-
Bonsoir,
il faut détailler le select
select distinct idcard, les autres zones from .....
on ne retourbera alors qu'un enreg par idcard identique -
je peux faire un
select distinct IdCard, * FROM ou je dois détailler tout les autres champs après ? -
-
bon, en fin de compte ça ne fonctionne pas...
voila ma requete : SELECT DISTINCT Presence.IdCard, Presence.ArrivalTime, Presence.DepartTime, Employes.EmployeName, Employes.Company,Employes.Localisation
FROM Presence LEFT JOIN Employes ON Presence.IdCard = Employes.idCard
WHERE DepartTime ='00:00:00' AND ArrivalTime <> '00:00:00'
et pourtant dans mon résultat je me retrouve bien avec 2 entrées répondant aux conditions WHERE, mais avec 2 IdCard identique... -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
effectivement car il prend le distinct sur toutes les variables et comme arrivaltime est différent il affiche tout
SELECT DISTINCT Presence.IdCard, Employes.EmployeName, Employes.Company,Employes.Localisation
FROM Presence LEFT JOIN Employes ON Presence.IdCard = Employes.idCard
WHERE DepartTime ='00:00:00' AND ArrivalTime <> '00:00:00' -
bon au final je pense avoir résolu mon problème avec un group by..
SELECT * FROM Presence LEFT JOIN Employes ON Presence.IdCard = Employes.idCard WHERE DepartTime ='00:00:00' AND ArrivalTime <> '00:00:00' GROUP BY Employes.EmployeName ORDER BY Localisation ASC, Company ASC, EmployeName ASC;
merci de votre aide